NIHVIVO-3331 list view for attendee role
This commit is contained in:
parent
04eadffd48
commit
736939994b
3 changed files with 383 additions and 6 deletions
|
@ -99,12 +99,6 @@
|
||||||
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasRole.xml</display:listViewConfigFile>
|
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasRole.xml</display:listViewConfigFile>
|
||||||
</rdf:Description>
|
</rdf:Description>
|
||||||
|
|
||||||
<rdf:Description rdf:about="http://vivoweb.org/ontology/core#hasAttendeeRole">
|
|
||||||
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasRole.xml</display:listViewConfigFile>
|
|
||||||
</rdf:Description>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- The next two roles may not have a "role in" anything -->
|
|
||||||
<rdf:Description rdf:about="http://vivoweb.org/ontology/core#hasEditorRole">
|
<rdf:Description rdf:about="http://vivoweb.org/ontology/core#hasEditorRole">
|
||||||
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasEditReviewRole.xml</display:listViewConfigFile>
|
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasEditReviewRole.xml</display:listViewConfigFile>
|
||||||
</rdf:Description>
|
</rdf:Description>
|
||||||
|
@ -117,6 +111,10 @@
|
||||||
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasPresenterRole.xml</display:listViewConfigFile>
|
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasPresenterRole.xml</display:listViewConfigFile>
|
||||||
</rdf:Description>
|
</rdf:Description>
|
||||||
|
|
||||||
|
<rdf:Description rdf:about="http://vivoweb.org/ontology/core#hasAttendeeRole">
|
||||||
|
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasAttendeeRole.xml</display:listViewConfigFile>
|
||||||
|
</rdf:Description>
|
||||||
|
|
||||||
<!-- The next three roles use a different config -->
|
<!-- The next three roles use a different config -->
|
||||||
<rdf:Description rdf:about="http://vivoweb.org/ontology/core#hasInvestigatorRole">
|
<rdf:Description rdf:about="http://vivoweb.org/ontology/core#hasInvestigatorRole">
|
||||||
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasInvestigatorRole.xml</display:listViewConfigFile>
|
<display:listViewConfigFile rdf:datatype="http://www.w3.org/2001/XMLSchema#string">listViewConfig-hasInvestigatorRole.xml</display:listViewConfigFile>
|
||||||
|
|
339
productMods/config/listViewConfig-hasAttendeeRole.xml
Normal file
339
productMods/config/listViewConfig-hasAttendeeRole.xml
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<?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 -->
|
||||||
|
|
||||||
|
<!-- 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 -->
|
||||||
|
|
||||||
|
<list-view-config>
|
||||||
|
<query-select>
|
||||||
|
PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#>
|
||||||
|
PREFIX bibo: <http://purl.org/ontology/bibo/>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX owl: <http://www.w3.org/2002/07/owl#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#>
|
||||||
|
PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
|
||||||
|
|
||||||
|
SELECT DISTINCT <collated>?subclass</collated>
|
||||||
|
?role ?roleLabel
|
||||||
|
?event1 ?event1Name ?event1Label
|
||||||
|
?event2 ?event2Label
|
||||||
|
?series ?seriesLabel
|
||||||
|
?event3
|
||||||
|
?dateTime
|
||||||
|
|
||||||
|
WHERE {
|
||||||
|
|
||||||
|
?subject ?property ?role
|
||||||
|
|
||||||
|
OPTIONAL { ?role rdfs:label ?roleLabel }
|
||||||
|
|
||||||
|
OPTIONAL { ?role vivo:roleRealizedIn ?event1
|
||||||
|
LET (?event1Name := afn:localname(?event1))
|
||||||
|
|
||||||
|
OPTIONAL { ?event1 rdfs:label ?event1Label }
|
||||||
|
|
||||||
|
OPTIONAL { ?event2 a event:Event .
|
||||||
|
OPTIONAL { ?event2 rdfs:label ?event2Label }
|
||||||
|
|
||||||
|
{
|
||||||
|
?event1 vivo:eventWithin ?event2
|
||||||
|
} UNION {
|
||||||
|
?event2 vivo:includesEvent ?event1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OPTIONAL {
|
||||||
|
{
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:eventWithin ?event2
|
||||||
|
} UNION {
|
||||||
|
?event2 vivo:includesEvent ?event3 .
|
||||||
|
?event3 vivo:includesEvent ?event1
|
||||||
|
|
||||||
|
}
|
||||||
|
OPTIONAL { ?event2 rdfs:label ?event2Label }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
OPTIONAL { ?series a vivo:EventSeries .
|
||||||
|
OPTIONAL { ?series rdfs:label ?seriesLabel }
|
||||||
|
|
||||||
|
{
|
||||||
|
?event1 vivo:inEventWithin ?series
|
||||||
|
} UNION {
|
||||||
|
?series vivo:seriesForEvent ?event1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OPTIONAL {
|
||||||
|
{
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:inEventSeries ?series
|
||||||
|
} UNION {
|
||||||
|
?event3 vivo:includesEvent ?event1 .
|
||||||
|
?series vivo:seriesForEvent ?event3
|
||||||
|
}
|
||||||
|
OPTIONAL { ?series rdfs:label ?seriesLabel }
|
||||||
|
}
|
||||||
|
|
||||||
|
<collated>
|
||||||
|
?event1 vitro:mostSpecificType ?subclass .
|
||||||
|
|
||||||
|
{
|
||||||
|
?subclass rdfs:subClassOf event:Event
|
||||||
|
} UNION {
|
||||||
|
?subclass owl:equivalentClass event:Event
|
||||||
|
}
|
||||||
|
</collated>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
OPTIONAL { ?role vivo:dateTimeInterval ?dateTimeInterval
|
||||||
|
OPTIONAL { ?dateTimeInterval vivo:start ?dateTimeStartValue .
|
||||||
|
?dateTimeStartValue vivo:dateTime ?dateTime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<critical-data-required>
|
||||||
|
FILTER ( bound(?event1) )
|
||||||
|
</critical-data-required>
|
||||||
|
|
||||||
|
} ORDER BY <collated>?subclass</collated> DESC(?dateTime) ?event1Label ?event1Name
|
||||||
|
</query-select>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX owl: <http://www.w3.org/2002/07/owl#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#>
|
||||||
|
PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
|
||||||
|
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event1 vitro:mostSpecificType ?subclass .
|
||||||
|
?subclass rdfs:subClassOf event:Event .
|
||||||
|
?subclass owl:equivalentClass event:Event .
|
||||||
|
} WHERE {
|
||||||
|
{
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event1 vitro:mostSpecificType ?subclass .
|
||||||
|
?subclass rdfs:subClassOf event:Event
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event1 vitro:mostSpecificType ?subclass .
|
||||||
|
?subclass owl:equivalentClass event:Event
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role ?roleProperty ?roleValue .
|
||||||
|
?event1 rdfs:label ?event1Label
|
||||||
|
} WHERE {
|
||||||
|
{
|
||||||
|
?subject ?property ?role
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role ?roleProperty ?roleValue
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event1 rdfs:label ?event1Label
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX bibo: <http://purl.org/ontology/bibo/>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
|
||||||
|
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event1 vivo:eventWithin ?event2 .
|
||||||
|
?event2 vivo:includesEvent ?event1 .
|
||||||
|
?event2 rdfs:label ?event2Label
|
||||||
|
} WHERE {
|
||||||
|
|
||||||
|
{
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event1 vivo:eventWithin ?event2
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event1 vivo:eventWithin ?event2 .
|
||||||
|
?event2 rdfs:label ?event2Label
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event2 vivo:includesEvent ?event1
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event2 vivo:includesEvent ?event1 .
|
||||||
|
?event2 rdfs:label ?event2Label
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX bibo: <http://purl.org/ontology/bibo/>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
|
||||||
|
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?event3 vivo:eventWithin ?event2 .
|
||||||
|
?event2 vivo:includesEvent ?event3 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:includesEvent ?event1 .
|
||||||
|
?event2 rdfs:label ?event2Label
|
||||||
|
} WHERE {
|
||||||
|
{
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:eventWithin ?event2
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:eventWithin ?event2 .
|
||||||
|
?event2 rdfs:label ?event2Label
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event2 vivo:includesEvent ?event3 .
|
||||||
|
?event3 vivo:includesEvent ?event1
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?event2 a event:Event .
|
||||||
|
?event2 vivo:includesEvent ?event3 .
|
||||||
|
?event3 vivo:includesEvent ?event1 .
|
||||||
|
?event2 rdfs:label ?event2Label
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX bibo: <http://purl.org/ontology/bibo/>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
|
||||||
|
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?event1 vivo:inEventSeries ?series .
|
||||||
|
?series vivo:seriesForEvent ?event1 .
|
||||||
|
?series rdfs:label ?seriesLabel
|
||||||
|
} WHERE {
|
||||||
|
|
||||||
|
{
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?event1 vivo:inEventSeries ?series
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?event1 vivo:inEventSeries ?series .
|
||||||
|
?series rdfs:label ?seriesLabel
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?series vivo:seriesForEvent ?event1
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?series vivo:seriesForEvent ?event1 .
|
||||||
|
?series rdfs:label ?seriesLabel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX bibo: <http://purl.org/ontology/bibo/>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?workshop vivo:inEventSeries ?series .
|
||||||
|
?series vivo:seriesForEvent ?event3 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:includesEvent ?event1 .
|
||||||
|
?series rdfs:label ?seriesLabel
|
||||||
|
} WHERE {
|
||||||
|
{
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:inEventSeries ?series
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?event1 vivo:eventWithin ?event3 .
|
||||||
|
?event3 vivo:inEventSeries ?series .
|
||||||
|
?series rdfs:label ?seriesLabel
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?series vivo:seriesForEvent ?event3 .
|
||||||
|
?workshop vivo:includesEvent ?event1
|
||||||
|
} UNION {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:roleRealizedIn ?event1 .
|
||||||
|
?series a vivo:EventSeries .
|
||||||
|
?series vivo:seriesForEvent ?event3 .
|
||||||
|
?event3 vivo:includesEvent ?event1 .
|
||||||
|
?series rdfs:label ?seriesLabel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<query-construct>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
CONSTRUCT {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:dateTimeInterval ?dateTimeInterval .
|
||||||
|
?dateTimeInterval vivo:start ?dateTimeStartValue .
|
||||||
|
?dateTimeStartValue vivo:dateTime ?dateTimeStart
|
||||||
|
} WHERE {
|
||||||
|
?subject ?property ?role .
|
||||||
|
?role vivo:dateTimeInterval ?dateTimeInterval .
|
||||||
|
?dateTimeInterval vivo:start ?dateTimeStartValue .
|
||||||
|
?dateTimeStartValue vivo:dateTime ?dateTimeStart
|
||||||
|
}
|
||||||
|
</query-construct>
|
||||||
|
|
||||||
|
<template>propStatement-hasAttendeeRole.ftl</template>
|
||||||
|
</list-view-config>
|
|
@ -0,0 +1,40 @@
|
||||||
|
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
|
||||||
|
|
||||||
|
<#-- Custom object property statement view for http://vivoweb.org/ontology/core#hasAttendeeRole.
|
||||||
|
|
||||||
|
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>
|
||||||
|
|
||||||
|
<@showRole statement />
|
||||||
|
|
||||||
|
<#-- Use a macro to keep variable assignments local; otherwise the values carry over to the
|
||||||
|
next statement -->
|
||||||
|
<#macro showRole statement>
|
||||||
|
<#local linkedIndividual>
|
||||||
|
<#if statement.event1??>
|
||||||
|
<a href="${profileUrl(statement.event1)}">${statement.event1Label!statement.event1Name}</a>
|
||||||
|
<#else>
|
||||||
|
<#-- This shouldn't happen, but we must provide for it -->
|
||||||
|
<a href="${profileUrl(statement.role)}">missing event</a>
|
||||||
|
</#if>
|
||||||
|
</#local>
|
||||||
|
|
||||||
|
<#local dateTime>
|
||||||
|
<@dt.yearSpan statement.dateTime! />
|
||||||
|
</#local>
|
||||||
|
|
||||||
|
<#local superEvent>
|
||||||
|
<#if statement.event2?has_content && statement.event2Label?has_content>
|
||||||
|
<a href="${profileUrl(statement.event2)}">${statement.event2Label}</a>
|
||||||
|
<#elseif statement.series?has_content && statement.seriesLabel?has_content>
|
||||||
|
<a href="${profileUrl(statement.series)}">${statement.seriesLabel}</a>
|
||||||
|
</#if>
|
||||||
|
</#local>
|
||||||
|
|
||||||
|
<@s.join [ linkedIndividual, statement.roleLabel!, superEvent! ] /> ${dateTime!}
|
||||||
|
|
||||||
|
</#macro>
|
Loading…
Add table
Add a link
Reference in a new issue