--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Http/Controllers/Api/DiscourseController.php Sun May 08 14:21:22 2016 +0200
@@ -0,0 +1,60 @@
+<?php
+
+namespace CorpusParole\Http\Controllers\Api;
+
+// use Illuminate\Http\Request;
+// use CorpusParole\Http\Requests;
+use CorpusParole\Http\Controllers\Controller;
+
+use Illuminate\Http\Request;
+use EasyRdf\Resource;
+use EasyRdf\Literal;
+
+use CorpusParole\Libraries\Sparql\SparqlClient;
+use CorpusParole\Services\LexvoResolverInterface;
+use CorpusParole\Services\BnfResolverInterface;
+
+
+class DiscourseController extends Controller
+{
+ private $sparqlClient = null;
+
+ public function __construct(SparqlClient $sparqlClient) {
+ $this->sparqlClient = $sparqlClient;
+ }
+
+ /**
+ * Display the specified resource.
+ *
+ * @return \Illuminate\Http\Response
+ */
+ public function index(Request $request)
+ {
+
+ $query = preg_replace('/\s+/', ' ', "select (?o as ?res) (COUNT(?s) as ?count) where {
+ ?s a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.
+ ?s <http://purl.org/dc/elements/1.1/type> ?o.
+ filter(uri(?o) in (<".implode('>,<', array_keys(config('corpusparole.corpus_discourse_type'))).">))
+ }
+ GROUP BY ?o
+ ORDER BY DESC(?count)");
+
+ $docs = $this->sparqlClient->query($query);
+
+ $discourses = [];
+
+ foreach ($docs as $row) {
+ $key = $row->res->getUri();
+ $count = $row->count->getValue();
+ $label = config('corpusparole.corpus_discourse_type')[$key];
+ $discourses[$key] = [
+ "label" => $label,
+ "count" => $count
+ ];
+ }
+
+ return response()->json(['discourses' => $discourses ]);
+
+ }
+
+}