diff --git a/productMods/config/listViewConfig-publisherOf.xml b/productMods/config/listViewConfig-publisherOf.xml new file mode 100644 index 00000000..5fd05187 --- /dev/null +++ b/productMods/config/listViewConfig-publisherOf.xml @@ -0,0 +1,169 @@ + + + + + + + + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#> + PREFIX bibo: <http://purl.org/ontology/bibo/> + PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> + PREFIX foaf: <http://xmlns.com/foaf/0.1/> + + SELECT DISTINCT ?subclass + ?infoResource ?infoResourceName + ?dateTime + ?journal + ?volume + ?startPage + ?endPage + ?locale + ?appearsIn + ?partOf + WHERE { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource rdfs:label ?infoResourceName . + + OPTIONAL { ?infoResource bibo:volume ?volume } + OPTIONAL { ?infoResource bibo:pageStart ?startPage } + OPTIONAL { ?infoResource bibo:pageEnd ?endPage } + OPTIONAL { ?infoResource core:placeOfPublication ?locale } + OPTIONAL { ?infoResource bibo:reproducedIn ?appearsInObj . + ?appearsInObj rdfs:label ?appearsIn + } + OPTIONAL { ?infoResource <http://purl.obolibrary.org/obo/BFO_0000050> ?partOfObj . + ?partOfObj rdfs:label ?partOf + } + OPTIONAL { ?infoResource core:hasPublicationVenue ?publishedIn . + ?publishedIn rdfs:label ?journal + } + OPTIONAL { ?infoResource vitro:mostSpecificType ?subclass } + OPTIONAL { ?infoResource core:dateTimeValue ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime + } + + + FILTER ( bound(?infoResource) ) + + } ORDER BY ?subclass DESC(?dateTime) ?infoResourceName + + + + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX bibo: <http://purl.org/ontology/bibo/> + PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> + CONSTRUCT { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource vitro:mostSpecificType ?subclass + } WHERE { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource vitro:mostSpecificType ?subclass + } + + + + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX bibo: <http://purl.org/ontology/bibo/> + CONSTRUCT { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource rdfs:label ?infoResourceName . + ?infoResource core:hasPublicationVenue ?publishedIn . + ?publishedIn rdfs:label ?journal + } WHERE { + { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource rdfs:label ?infoResourceName + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource core:hasPublicationVenue ?publishedIn + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource core:hasPublicationVenue ?publishedIn . + ?publishedIn rdfs:label ?journal + } + } + + + + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX bibo: <http://purl.org/ontology/bibo/> + PREFIX foaf: <http://xmlns.com/foaf/0.1/> + CONSTRUCT { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource ?infoResourceProperty ?infoResourceValue . + ?infoResource bibo:reproducedIn ?appearsInObj . + ?infoResource core:publisher ?publisherObj . + ?infoResource core:relatedBy ?editorship . + ?editorship a core:Editorship . + ?editorship core:relates ?editorObj . + ?editorObj a foaf:Person . + ?infoResource <http://purl.obolibrary.org/obo/BFO_0000050> ?partOfObj . + ?appearsInObj rdfs:label ?appearsIn . + ?editorObj rdfs:label ?editor . + ?partOfObj rdfs:label ?partOf + } WHERE { + { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource ?infoResourceProperty ?infoResourceValue + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource bibo:reproducedIn ?appearsInObj . + ?appearsInObj rdfs:label ?appearsIn + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource core:relatedBy ?editorship . + ?editorship a core:Editorship . + ?editorship core:relates ?editorObj . + ?editorObj a foaf:Person . + ?editorObj rdfs:label ?editor + } UNION { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource <http://purl.obolibrary.org/obo/BFO_0000050> ?partOfObj . + ?partOfObj rdfs:label ?partOf + } + } + + + + PREFIX core: <http://vivoweb.org/ontology/core#> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX bibo: <http://purl.org/ontology/bibo/> + CONSTRUCT { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource rdfs:label ?infoResourceName . + ?infoResource core:dateTimeValue ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime + } WHERE { + ?subject ?property ?infoResource . + ?infoResource a <http://purl.obolibrary.org/obo/IAO_0000030> . + ?infoResource rdfs:label ?infoResourceName . + ?infoResource core:dateTimeValue ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime + } + + + + diff --git a/productMods/templates/freemarker/body/partials/individual/propStatement-publisherOf.ftl b/productMods/templates/freemarker/body/partials/individual/propStatement-publisherOf.ftl new file mode 100644 index 00000000..7eed2681 --- /dev/null +++ b/productMods/templates/freemarker/body/partials/individual/propStatement-publisherOf.ftl @@ -0,0 +1,94 @@ +<#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> + +<#-- Custom object property statement view for faux property "editor of". See the PropertyConfig.3 file for details. + + 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> + +<@showEditorship statement /> + +<#-- Use a macro to keep variable assignments local; otherwise the values carry over to the + next statement --> +<#macro showEditorship statement> +<#local citationDetails> + <#if statement.subclass??> + <#if statement.subclass?contains("Article")> + <#if statement.journal??> + ${statement.journal!}.  + <#if statement.volume?? && statement.startPage?? && statement.endPage??> + ${statement.volume!}:${statement.startPage!}-${statement.endPage!}. + <#elseif statement.volume?? && statement.startPage??> + ${statement.volume!}:${statement.startPage!}. + <#elseif statement.volume??> + ${statement.volume!}. + <#elseif statement.startPage?? && statement.endPage??> + ${statement.startPage!}-${statement.endPage!}. + <#elseif statement.startPage??> + ${statement.startPage!}. + + + <#elseif statement.subclass?contains("Chapter")> + <#if statement.journal??> + ${statement.journal!}. + <#elseif statement.appearsIn??> + ${statement.appearsIn!}. + <#elseif statement.partOf??> + ${statement.partOf!}. + + <#if statement.locale?? && statement.publisher??> + ${statement.locale!}: ${statement.publisher!}. + <#elseif statement.locale??> + ${statement.locale!}. + <#elseif statement.publisher??> + ${statement.publisher!}. + + <#if statement.startPage?? && statement.endPage??> + ${statement.startPage!}-${statement.endPage!}. + <#elseif statement.startPage??> + ${statement.startPage!}. + + <#elseif statement.subclass?contains("Book")> + <#if statement.volume?? && (statement.volume!?length > 0 )> + ${i18n().volume_abbreviated} ${statement.volume!}.  + + <#if statement.locale?? && statement.publisher??> + ${statement.locale!}: ${statement.publisher!}. + <#elseif statement.locale??> + ${statement.locale!}. + + <#else> + <#if statement.journal??> + ${statement.journal!}. + <#elseif statement.appearsIn??> + ${statement.appearsIn!}. + <#elseif statement.partOf??> + ${statement.partOf!}. + + <#if statement.startPage?? && statement.endPage??> + ${statement.startPage!}-${statement.endPage!}. + <#elseif statement.startPage??> + ${statement.startPage!}. + + + + + + <#local resourceTitle> + <#if statement.infoResource??> + <#if citationDetails?has_content> + ${statement.infoResourceName}.  + <#else> + ${statement.infoResourceName} + + <#else> + <#-- This shouldn't happen, but we must provide for it --> + ${i18n().missing_info_resource} + + + + ${resourceTitle} ${citationDetails} <@dt.yearSpan "${statement.dateTime!}" /> + diff --git a/rdf/display/everytime/vivoListViewConfig.rdf b/rdf/display/everytime/vivoListViewConfig.rdf index be59e905..642840ee 100644 --- a/rdf/display/everytime/vivoListViewConfig.rdf +++ b/rdf/display/everytime/vivoListViewConfig.rdf @@ -69,6 +69,10 @@ listViewConfig-hasAssociatedConcept.xml + + + listViewConfig-publisherOf.xml + listViewConfig-orcidId.xml