NIHVIVO-1132: added additional citation info tp publications with emphasis on articles, books and book chapters

This commit is contained in:
tworrall 2011-10-18 20:50:59 +00:00
parent 9813ea69f3
commit 800819eda8
2 changed files with 186 additions and 10 deletions

View file

@ -8,19 +8,51 @@
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/>
SELECT DISTINCT <collated> ?subclass </collated>
?authorship
?infoResource ?infoResourceName
?dateTime WHERE {
?dateTime
?journal
?volume
?startPage
?endPage
?publisher
?locale
?appearsIn
?partOf
?editor
WHERE {
?subject ?property ?authorship
OPTIONAL { ?authorship core:linkedInformationResource ?infoResource .
?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 core:publisher ?publisherObj .
?publisherObj rdfs:label ?publisher
}
OPTIONAL { ?infoResource core:editor ?editorObj .
?editorObj rdfs:label ?editor
}
OPTIONAL { ?infoResource core:partOf ?partOfObj .
?partOfObj rdfs:label ?partOf
}
<collated>
OPTIONAL { ?subclass rdfs:subClassOf core:InformationResource .
?infoResource a ?subclass
}
</collated>
OPTIONAL { ?infoResource core:hasPublicationVenue ?publishedIn .
?publishedIn rdfs:label ?journal
}
OPTIONAL { ?infoResource core:dateTimeValue ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime
}
@ -44,22 +76,93 @@
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
CONSTRUCT {
?subject ?property ?authorship .
?authorship ?authorshipProperty ?authorshipValue .
?authorship core:linkedInformationResource ?infoResource .
?infoResource rdfs:label ?infoResourceName
?infoResource rdfs:label ?infoResourceName .
?infoResource core:hasPublicationVenue ?publishedIn .
?publishedIn rdfs:label ?journal
} WHERE {
{
?subject ?property ?authorship
}
UNION {
?subject ?property ?authorship .
?authorship ?authorshipProperty ?authorshipValue .
?authorship ?authorshipProperty ?authorshipValue
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource rdfs:label ?infoResourceName
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource core:hasPublicationVenue ?publishedIn
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource core:hasPublicationVenue ?publishedIn .
?publishedIn rdfs:label ?journal
}
}
</query-construct>
<query-construct>
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX bibo: &lt;http://purl.org/ontology/bibo/&gt;
CONSTRUCT {
?subject ?property ?authorship .
?authorship ?authorshipProperty ?authorshipValue .
?authorship core:linkedInformationResource ?infoResource .
?infoResource ?infoResourceProperty ?infoResourceValue .
?infoResource bibo:reproducedIn ?appearsInObj .
?infoResource core:publisher ?publisherObj .
?infoResource core:editor ?editorObj .
?infoResource core:partOf ?partOfObj .
?appearsInObj rdfs:label ?appearsIn .
?publisherObj rdfs:label ?publisher .
?editorObj rdfs:label ?editor .
?partOfObj rdfs:label ?partOf
} WHERE {
{
?subject ?property ?authorship
}
UNION {
?subject ?property ?authorship .
?authorship ?authorshipProperty ?authorshipValue
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource ?infoResourceProperty ?infoResourceValue
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource bibo:reproducedIn ?appearsInObj .
?appearsInObj rdfs:label ?appearsIn
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource core:publisher ?publisherObj .
?publisherObj rdfs:label ?publisher
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource core:editor ?editorObj .
?editorObj rdfs:label ?editor
} UNION {
?subject ?property ?authorship .
?authorship core:linkedInformationResource ?infoResource .
?infoResource core:partOf ?partOfObj .
?partOfObj rdfs:label ?partOf
}
}
</query-construct>

View file

@ -14,16 +14,89 @@
<#-- Use a macro to keep variable assignments local; otherwise the values carry over to the
next statement -->
<#macro showAuthorship statement>
<#local linkedIndividual>
<#local resourceTitle>
<#if statement.infoResource??>
<a href="${profileUrl(statement.infoResource)}">${statement.infoResourceName}</a>
<a href="${profileUrl(statement.infoResource)}">${statement.infoResourceName}</a>.&nbsp;
<#else>
<#-- This shouldn't happen, but we must provide for it -->
<a href="${profileUrl(statement.authorship)}">missing information resource</a>
<a href="${profileUrl(statement.authorship)}">missing information resource</a>.&nbsp;
</#if>
</#local>
${linkedIndividual} <@dt.yearSpan "${statement.dateTime!}" />
<#local citationDetails>
<#if statement.subclass??>
<#if statement.subclass?contains("Article")>
<#if statement.journal??>
<em>${statement.journal!}</em>.&nbsp;
<#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!}.
</#if>
</#if>
<#elseif statement.subclass?contains("Chapter")>
<#if statement.journal??>
<em>${statement.journal!}</em>.
<#elseif statement.appearsIn??>
<em>${statement.appearsIn!}</em>.
<#elseif statement.partOf??>
<em>${statement.partOf!}</em>.
</#if>
<#if statement.editor??>
Ed.&nbsp;${statement.editor!}.&nbsp;
</#if>
<#if statement.locale?? && statement.publisher??>
${statement.locale!}:&nbsp;${statement.publisher!}.
<#elseif statement.locale??>
${statement.locale!}.
<#elseif statement.publisher??>
${statement.publisher!}.
</#if>
<#if statement.startPage?? && statement.endPage??>
${statement.startPage!}-${statement.endPage!}.
<#elseif statement.startPage??>
${statement.startPage!}.
</#if>
<#elseif statement.subclass?contains("Book")>
<#if statement.volume??>
Vol.&nbsp;${statement.volume!}.&nbsp;
</#if>
<#if statement.editor??>
Ed.&nbsp;${statement.editor!}.&nbsp;
</#if>
<#if statement.locale?? && statement.publisher??>
${statement.locale!}:&nbsp;${statement.publisher!}.
<#elseif statement.locale??>
${statement.locale!}.
<#elseif statement.publisher??>
${statement.publisher!}.
</#if>
<#else>
<#if statement.journal??>
<em>${statement.journal!}</em>.
<#elseif statement.appearsIn??>
<em>${statement.appearsIn!}</em>.
<#elseif statement.partOf??>
<em>${statement.partOf!}</em>.
</#if>
<#if statement.editor??>
Ed. ${statement.editor!}.&nbsp;
</#if>
<#if statement.startPage?? && statement.endPage??>
${statement.startPage!}-${statement.endPage!}.
<#elseif statement.startPage??>
${statement.startPage!}.
</#if>
</#if>
</#if>
</#local>
${resourceTitle} ${citationDetails} <@dt.yearSpan "${statement.dateTime!}" />
</#macro>