Skip to main content

SharePoint Managed Metadata Store - Thesaurus Report

This report creates a synonym list which can be used to enhance search relevance in MS SharePoint. The named query in the PoolParty configuration (SesameSetup.xml) for the report looks like the following:

<namedQueries>
...
         <entry>
            <key>MMSThesaurus</key>
            <value>
                <sparqlQueryParameterMap>
                    <entry>
                        <key>Lang</key>
                        <value>en</value>
                    </entry>
                </sparqlQueryParameterMap>
                <sparqlQueryTemplate>
          PREFIX skos: &lt;http://www.w3.org/2004/02/skos/core#&gt;
          SELECT ?pref ?alt
          WHERE
          {
          ?concept skos:prefLabel ?pref. FILTER(lang(?pref) = '%%%Lang%%%') .
          ?concept skos:altLabel ?alt. FILTER(lang(?alt) = '%%%Lang%%%') .
          }
                </sparqlQueryTemplate>
            </value>
        </entry>
...
    </namedQueries>

The velocity template for the report looks like the following:

Key,Synonym,Language
#foreach($row in $result)
$row.get("pref").stringValue(),$row.get("alt").stringValue(),$parameters.get('Lang').get(0)
#end

The report entry in the PoolParty configuration (SesameSetup.xml) for the report looks like the following:

 <reports>
...
        <entry>
            <key>MMS Thesaurus</key>
            <value>
                <contentType>text/csv;charset=UTF-8</contentType>
                <namedQuery>MMSThesaurus</namedQuery>
                <suffix>.rep</suffix>
                <template>mmsthes.vm</template>
            </value>
        </entry>
...
    </reports>