author | ymh <ymh.work@gmail.com> |
Wed, 09 Nov 2016 23:41:15 +0100 | |
changeset 407 | 2dba812c7ef2 |
parent 387 | 7fba86fa8604 |
permissions | -rw-r--r-- |
386
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
<?php |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
use CorpusParole\Libraries\Sparql\SparqlQueryAnalyser; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
class SparqlQueryAnalyserTest extends TestCase |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
{ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
const QUERIES = [ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
"BASE" => "base.sparql", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
"ASK" => "ask.sparql", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
"GRAPH" => "graph.sparql", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
"LIMIT_OFFSET" => "limit_offset.sparql", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
"PREFIXES" => "prefixes.sparql", |
387 | 13 |
"PREFIXES_LIMIT" => "prefixes_limit.sparql", |
386
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
"SELECT" => "select.sparql", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
"UNKNOWN" => "unknown.sparql", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
]; |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
public function getTestQuery($key) { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
return file_get_contents(__DIR__.'/files/SparqlQueryAnalyserTest/'.self::QUERIES[$key]); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
/** |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
* A basic test jsut test object creation. |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
* |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
* @return void |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
*/ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
public function testCreation() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("BASE")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
$this->assertNotNull($analyser); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
public function testQuerySelect() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("SELECT")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
$this->assertEquals(SparqlQueryAnalyser::SELECT_QUERY, $analyser->getQueryType()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
36 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
public function testQueryGraph() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("GRAPH")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
$this->assertEquals(SparqlQueryAnalyser::GRAPH_QUERY, $analyser->getQueryType()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
public function testQueryAsk() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("ASK")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
$this->assertEquals(SparqlQueryAnalyser::ASK_QUERY, $analyser->getQueryType()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
46 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
47 |
public function testQueryUnkown() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
48 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("UNKNOWN")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
$this->assertEquals(SparqlQueryAnalyser::UNKNOWN_QUERY, $analyser->getQueryType()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |
public function testLimitOffset() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("LIMIT_OFFSET")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
$this->assertEquals(20, $analyser->getOffset()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
$this->assertEquals(10, $analyser->getLimit()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
public function testPrefixes() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
60 |
$this->assertCount(5, $analyser->getPrefixes()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
$this->assertEquals([ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
62 |
"" => "http://www.google.com/", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
63 |
"rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
64 |
"rdfs" => "http://www.w3.org/2000/01/rdf-schema#", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
65 |
"foaf" => "http://xmlns.com/foaf/0.1/", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
66 |
"dbpedia-owl" => "http://dbpedia.org/ontology/" |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
67 |
], $analyser->getPrefixes()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
68 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
69 |
|
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
70 |
public function testRawPrefixes() { |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES")); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
72 |
$this->assertCount(5, $analyser->getRawPrefixes()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
73 |
$this->assertEquals([ |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
74 |
"BASE <http://www.google.com/>", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
75 |
"PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
76 |
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
77 |
"prefix foaf: <http://xmlns.com/foaf/0.1/>", |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
78 |
"PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>" |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
79 |
], $analyser->getRawPrefixes()); |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
80 |
} |
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
81 |
|
387 | 82 |
public function testRawQuery() { |
83 |
$analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES_LIMIT")); |
|
84 |
||
85 |
$this->assertEquals(20, $analyser->getOffset()); |
|
86 |
$this->assertEquals(10, $analyser->getLimit()); |
|
87 |
$this->assertEquals("select ?Nom ?resource ?url (count( distinct (?o) as ?nb)) |
|
88 |
where { |
|
89 |
?resource rdfs:label ?Nom. |
|
90 |
?resource foaf:isPrimaryTopicOf ?url. |
|
91 |
?resource rdf:type ?p. |
|
92 |
?resource dbpedia-owl:wikiPageExternalLink ?o |
|
93 |
FILTER ( langMatches( lang(?Nom), \"EN\" )). |
|
94 |
?Nom <bif:contains> \"Apple\". |
|
95 |
MINUS { ?resource dbo:wikiPageRedirects|dbo:wikiPageDisambiguates ?dis } |
|
386
c731ab9b934d
implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
96 |
} |
387 | 97 |
Group By ?Nom ?resource ?url", $analyser->getRawQuery()); |
98 |
} |
|
99 |
||
100 |
} |