Project Data Model
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.  | 
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>