Module:GroupNameVariations

From The Seven Sages of Rome
Revision as of 12:24, 4 June 2024 by Noeth (talk | contribs)

This module retrieves name variations associated with a given narrator from Semantic MediaWiki.

Usage

The module can be invoked using #invoke in a template or wiki page.

Parameters

The first unnamed parameter specifies the narrator's name whose name variations should be retrieved.

Behavior

The module queries Semantic MediaWiki for Has Name Variation properties associated with the specified Has Narrator value.

If no results are found, it returns "(no values)".

If multiple results are found, they are concatenated into a list separated by commas, with and before the last item.

Example Output

If NarratorName has the following data in Semantic MediaWiki:

Has Name Variation = John Doe

Has Name Variation = J. Doe

Has Name Variation = Jonathan D.

Then the module will return:

John Doe, J. Doe and Jonathan D.

Notes

The module relies on Semantic MediaWiki (mw.smw.ask).

If the query returns no results, (no values) is displayed.

The function groupMessages is defined but not used in this module.


-- Module:SMW
local p = {}

-- Return results
function p.ask(sage)

    if not mw.smw then
        return "mw.smw module not found"
    end

    if sage.args[1] == nil then
        return "no parameter found"
    end

    local queryResult = mw.smw.getQueryResult( string.format('[[Has Narrator::%s]][[Has Name Variation::+]]|?Has Name Variation', sage.args[1]) )

    if queryResult == nil then
        return "(no values)"
    end
    
    if type( queryResult ) == "table" then
    	local myResult = ""
        for k,v in pairs( queryResult.results ) do
        	myResult = v
        end
        return myResult
    end


    return queryResult
end

return p