Module:TA4TK:myTest

From MaRDI portal
Revision as of 15:17, 3 January 2025 by Shehu (talk | contribs)

Documentation for this module may be created at Module:TA4TK:myTest/doc

-- Main table to hold all functions

local sparql = require('SPARQL') -- Load the SPARQL binding

local p = {}

function p.hello()
	local str = "Hello World!"
	return str
end

function p.renderFormula()
    local formula = "\\sin x" -- LaTeX formula
end

function p.querySPARQL()
	-- Define the SPARQL endpoint
    local endpoint = "https://query.wikidata.org/"

    -- Define the SPARQL query
    local sparqlQuery = [[
        SELECT ?item ?itemLabel WHERE {
            ?item wdt:P31 wd:Q5;
                  rdfs:label "Albert Einstein"@en.
            SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
        } LIMIT 1
    ]]
	
	local queryResults = sparql.runQuery(sparqlQuery) -- Use the runQuery method

	-- nil is returned if Blazegraph did not return a valid response
	if queryResults == nil then
		return "No results found."
	end

	
    -- Check if the input is a table
    if type(queryResults) ~= "table" then
        return "Error: Input is not a table."
    end

    -- Start HTML table
    local results = {"<table border='1'>"}
    table.insert(results, "<tr><th>Key</th><th>Value</th></tr>")

     -- Add rows for each key-value pair
    for key, value in pairs(queryResults) do
        table.insert(results, string.format("<tr><td>%s</td><td>%s</td></tr>", tostring(key), tostring(value)))
    end

    -- End HTML table
    table.insert(results, "</table>")
    return table.concat(results, "\n")
    --return queryResults['results']
end



return p