Skip to main content

Project Data Model

Abstract

Project Data Model

For the project page the following data model is in place.

Key

Type

Description

projectId

String

The project ID as specified on project creation, appended to the base URL this forms the project URI

repositoryId

String

The internal repository ID belonging to the project

projectName

String

Internal project name as displayed in the PoolParty backend.

project

ResourceBean

A resource bean holding all project information as VoiD RDF.

See Metadata Tab (Project)

conceptSchemes

List<ResourceBean>

A list of concept schemes, each containing all triples where the scheme is subject.

The list is sorted by the title in the project's default language.

topConcepts

List<ResourceBean>

All top concepts in a list, each resource bean containing all triples where the concept is subject.

The list is sorted by the prefLabel in the projects default language.

topConceptMap

Map<Resource, ResourceBean>

Contains the same beans as topConcepts but in a unsorted map with its URI/BNode as key.

This way you can look up details of the top concepts when you iterate through

the skos:hasTopConcept values of a concept scheme.

labels

Map

A map of type <String, String>,

holding all localized labels for properties. The key is the property URI from the "data" structure.

downloads

Map<String, String>

A map with the key being the format name (e.g. "RDF/XML", "N-Triples", "Turtle", "N3", "Trix", "TriG", "BinaryRDF", "N-Quads", "JSON-LD", "RDF/JSON", "RDFa")

and the value being the download links to exports that were created in the file system.

downloadSizes

Map<String, String>

A map with the key being the format name (e.g. "RDF/XML", "N-Triples", "Turtle", "N3", "Trix", "TriG", "BinaryRDF", "N-Quads", "JSON-LD", "RDF/JSON", "RDFa")

and the value being the download size of the exports file.

view

String

The requested view on the resource. (e.g. html)

request

HttpServletRequest

The HttpServletRequest object of the current request.

frontend

FrontendSetup

A bean of type at.punkt.PoolParty.Configuration.frontend.FrontendSetup

holding the frontend configuration (access level, tabs, etc.) of this installation.

namespaces

List

A list of org.openrdf.model.Namespace objects that are configured for this PoolParty installation.

The namespaces are loaded from the namespaces.ttl file in the resourceRoot.

Example

This is the code for the content of the default project page (project/html.vm).

<div class="yui-content">
    <div id="tab0">
        <div class="onecol" about="$project.resource">
            <h2>$tools.rdfa.print($project.get($DCTERMSTITLE).get(0), $DCTERMSTITLE, $namespaces)</h2>
            <a href="$project.resource">$project.resource</a>
            <br/>
            <div style="padding:10px">
                <table>
                    <tr>
                        <td class="project-metadata-left"><a class="hiddenLink" href="$DCTERMSSUBJECT">$labels.get($DCTERMSSUBJECT):</a></td>
                        <td>$tools.rdfa.print($project.get($DCTERMSSUBJECT).get(0), $DCTERMSSUBJECT, $namespaces)</td>
                    </tr>
                    <tr>
                        <td class="project-metadata-left"><a class="hiddenLink" href="$DCDESCRIPTION">$labels.get($DCDESCRIPTION):</a></td>
                        <td>$tools.rdfa.print($project.get($DCDESCRIPTION).get(0), $DCDESCRIPTION, $namespaces)</td>
                    </tr>
                    <tr>
                        <td class="project-metadata-left"><a class="hiddenLink" href="$DCMODIFIED">$labels.get($DCMODIFIED):</a></td>
                        <td>$tools.rdfa.print($project.get($DCMODIFIED).get(0), $DCMODIFIED, $namespaces)</td>
                    </tr>
                    <tr>
                        <td class="project-metadata-left"><a class="hiddenLink" href="$SWNUMBEROFCONCEPTS">$labels.get($SWNUMBEROFCONCEPTS):</a></td>
                        <td>$tools.rdfa.print($project.get($SWNUMBEROFCONCEPTS).get(0), $SWNUMBEROFCONCEPTS, $namespaces)</td>
                    </tr>
                    <tr>
                        <td class="project-metadata-left"><a class="hiddenLink" href="$DCLANGUAGE">$labels.get($DCLANGUAGE):</a></td>
                        <td>$tools.rdfa.print($project.get($DCLANGUAGE).get(0), $DCLANGUAGE, $namespaces)</td>
                    </tr>
                </table>
                <span rel="rdf:type" href="void:Dataset"/>
            </div>
            <br/>
            <h4>Concept Schemes</h4>
            <hr/>
            <div style="padding:15px">
                <table>
#foreach($conceptScheme in $conceptSchemes)
                <tr about="$conceptScheme.resource">
                    <td class="project-conceptscheme">
                        <a href="$conceptScheme.resource">
#foreach($title in $conceptScheme.get($DCTITLE))
                            #if ($title.language == $project.get($DCLANGUAGE).get(0).label) $title.label #end
#end
                        </a>
                    </td>
                    <td>
#if ($conceptScheme.get($DCSUBJECT).get(0))
#foreach($subject in $conceptScheme.get($DCSUBJECT))
                            #if ($subject.language == $project.get($DCLANGUAGE).get(0).label) $subject.label #end
#end
#end                </td>
                </tr>
#end
                </table>
            </div>
            <br/>
            <h4>Downloads</h4>
            <hr/>
            <div style="padding:15px">
            #foreach($download in $downloads.entrySet())
                <span style="float:left; padding-left: 5px; padding-right:5px"><div class="$download.key.toLowerCase().replaceAll('\W','')"><a href="$download.value">$download.key</a></div></span>
            #end
            </div>
            <br/>
            <h4>Metadata</h4>
            <hr/>
            <div style="padding:15px" about="${project.resource}">
                <table>
                <tr>
                    <td class="project-metadata-block"><a class="hiddenLink" href="$DCTERMSDATE">$labels.get($DCTERMSDATE):</a></td>
                    <td>$tools.rdfa.print($project.get($DCTERMSDATE).get(0), $DCTERMSDATE, $namespaces)</td>
                </tr>
                <tr>
                    <td class="project-metadata-left"><a class="hiddenLink" href="$DCCREATOR">$labels.get($DCCREATOR):</a></td>
                    <td>
                        <ul>
#foreach($value in $project.get($DCCREATOR))
                        <li>$tools.rdfa.print($value, $DCCREATOR, $namespaces)</li>
#end
                        </ul>
                    </td>
                </tr>
                <tr>
                    <td class="project-metadata-left"><a class="hiddenLink" href="$DCCONTRIBUTOR">$labels.get($DCCONTRIBUTOR):</a></td>
                    <td>
                        <ul>
#foreach($value in $project.get($DCCONTRIBUTOR))
                        <li>$tools.rdfa.print($value, $DCCONTRIBUTOR, $namespaces)</li>
#end
                        </ul>
                    </td>
                </tr>
                <tr>
                    <td class="project-metadata-left"><a class="hiddenLink" href="$DCPUBLISHER">$labels.get($DCPUBLISHER):</a></td>
                    <td>
                        <ul>
#foreach($value in $project.get($DCPUBLISHER))
                        <li>$tools.rdfa.print($value, $DCPUBLISHER, $namespaces)</li>
#end
                        </ul>
                    </td>
                </tr>
                </table>
            </div>
        </div>
    </div>
</div>