server/src/app/Http/Controllers/Api/LanguageController.php
author ymh <ymh.work@gmail.com>
Fri, 14 Oct 2016 01:02:10 +0200
changeset 329 0a2c2ad49d75
parent 126 e87a340711a4
child 377 52169c718513
permissions -rw-r--r--
Improvce language visualization. Generalize language node selection, change language query parameters, add resolution of node name (corpus-) to lexvo controler

<?php

namespace CorpusParole\Http\Controllers\Api;

// use Illuminate\Http\Request;
// use CorpusParole\Http\Requests;
use CorpusParole\Http\Controllers\Controller;

use CorpusParole\Libraries\Sparql\SparqlClient;


class LanguageController extends Controller
{
    private $sparqlClient = null;

    public function __construct(SparqlClient $sparqlClient) {
        $this->sparqlClient = $sparqlClient;
    }

    /**
     * Display the specified resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {

        $query = "select ?lang (count(?lang) as ?count) where {
            ?s a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.
            ?s <http://purl.org/dc/elements/1.1/language> ?lang
        }
        GROUP BY ?lang
        ORDER BY DESC(?count)";

        $docs = $this->sparqlClient->query($query);

        $languages = [];
        foreach ($docs as $row) {
            $languages[$row->lang->getUri()] = $row->count->getValue();
        }

        return response()->json(['languages' => $languages ]);

    }

}