server/src/tests/libraries/Mergers/CocoonCollectionRdfMergerTest.php
changeset 144 03678acbfda3
parent 114 8af5ed0521a2
equal deleted inserted replaced
143:023b6d467566 144:03678acbfda3
    23         @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
    23         @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
    24         @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
    24         @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
    25         @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
    25         @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
    26         @prefix owl: <http://www.w3.org/2002/07/owl#> .
    26         @prefix owl: <http://www.w3.org/2002/07/owl#> .
    27 
    27 
    28         <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000>
    28         <%1\$scrdo-COLLECTION_CFPP2000>
    29           a edm:Collection ;
    29           a edm:Collection ;
       
    30           dc:isVersionOf <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
    30           dc11:description "Corpus de Français Parlé Parisien des années 2000."@fr, "Le Corpus de Français Parlé Parisien (CFPP2000) est composé d'un ensemble d'interviews non directives sur les quartiers de Paris et de la proche banlieue. Les entretiens, transcrits en orthographe et alignés au tour de parole, sont disponibles sur le net ; ils sont librement employables en échange de la mention dans la bibliographie des travaux qui en seraient tirés d'une part de l'adresse du site: http://cfpp2000.univ-paris3.fr/ et d'autre part du document de présentation suivant : Branca-Rosoff S., Fleury S., Lefeuvre F., Pires M., 2012, \"Discours sur la ville. Présentation du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)\". En février 2013, ce corpus comprenait environ 550 000 mots. Un certain nombre d'outils en ligne, notamment un concordancier et  des outils textométriques permettent de mener des requêtes lexicales et grammaticales. CFPP2000 est particulièrement destiné à des analyses sur le français oral. Le projet sous-jacent au corpus est par ailleurs l'étude des modifications et des variations qui interviennent dans ce qu'on peut considérer comme un parisien véhiculaire en tension entre le pôle du standard et le pôle du vernaculaire. Par ailleurs, il comporte des activités linguistiques diversifiées (description de quartier, anecdotes, argumentation…) et on peut par conséquent travailler sur la syntaxe propre à ces différentes utilisations du langage. Il permet enfin d'opposer dialogues (entre enquêteur et enquêtés) et multilogues (où la présence de plusieurs enquêtés favorise le passage à un registre familier).  CFPP2000 est constitué d'interviews longues (d'une heure en moyenne) intégralement transcrites. Il est donc utilisable pour examiner les singularités qui reviennent à l'idiolecte propre à une personne donnée, par opposition aux variantes diffusées dans des groupes plus larges (quartiers, groupes socio-culturels, classe d'âge, etc.). Le corpus constitue enfin un ensemble de témoignages intéressants sur les représentations de Paris et de sa proche banlieue qui est susceptible d'intéresser des analystes du discours, des sociologues, ou tout simplement des curieux de la ville."@fr ;
    31           dc11:description "Corpus de Français Parlé Parisien des années 2000."@fr, "Le Corpus de Français Parlé Parisien (CFPP2000) est composé d'un ensemble d'interviews non directives sur les quartiers de Paris et de la proche banlieue. Les entretiens, transcrits en orthographe et alignés au tour de parole, sont disponibles sur le net ; ils sont librement employables en échange de la mention dans la bibliographie des travaux qui en seraient tirés d'une part de l'adresse du site: http://cfpp2000.univ-paris3.fr/ et d'autre part du document de présentation suivant : Branca-Rosoff S., Fleury S., Lefeuvre F., Pires M., 2012, \"Discours sur la ville. Présentation du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)\". En février 2013, ce corpus comprenait environ 550 000 mots. Un certain nombre d'outils en ligne, notamment un concordancier et  des outils textométriques permettent de mener des requêtes lexicales et grammaticales. CFPP2000 est particulièrement destiné à des analyses sur le français oral. Le projet sous-jacent au corpus est par ailleurs l'étude des modifications et des variations qui interviennent dans ce qu'on peut considérer comme un parisien véhiculaire en tension entre le pôle du standard et le pôle du vernaculaire. Par ailleurs, il comporte des activités linguistiques diversifiées (description de quartier, anecdotes, argumentation…) et on peut par conséquent travailler sur la syntaxe propre à ces différentes utilisations du langage. Il permet enfin d'opposer dialogues (entre enquêteur et enquêtés) et multilogues (où la présence de plusieurs enquêtés favorise le passage à un registre familier).  CFPP2000 est constitué d'interviews longues (d'une heure en moyenne) intégralement transcrites. Il est donc utilisable pour examiner les singularités qui reviennent à l'idiolecte propre à une personne donnée, par opposition aux variantes diffusées dans des groupes plus larges (quartiers, groupes socio-culturels, classe d'âge, etc.). Le corpus constitue enfin un ensemble de témoignages intéressants sur les représentations de Paris et de sa proche banlieue qui est susceptible d'intéresser des analystes du discours, des sociologues, ou tout simplement des curieux de la ville."@fr ;
    31           dc11:language <http://lexvo.org/id/iso639-3/gsw> ;
    32           dc11:language <http://lexvo.org/id/iso639-3/gsw> ;
    32           dc11:publisher <http://viaf.org/viaf/142432638>, "Fédération CLESTHIA", <http://viaf.org/viaf/154862993> ;
    33           dc11:publisher <http://viaf.org/viaf/142432638>, "Fédération CLESTHIA", <http://viaf.org/viaf/154862993> ;
    33           dc11:rights "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
    34           dc11:rights "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
    34           dc11:type <http://purl.org/dc/dcmitype/Collection> ;
    35           dc11:type <http://purl.org/dc/dcmitype/Collection> ;
    66         @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
    67         @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
    67         @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
    68         @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
    68         @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
    69         @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
    69         @prefix owl: <http://www.w3.org/2002/07/owl#> .
    70         @prefix owl: <http://www.w3.org/2002/07/owl#> .
    70 
    71 
    71         <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000>
    72         <%1\$scrdo-COLLECTION_CFPP2000>
    72           a edm:Collection ;
    73           a edm:Collection ;
       
    74           dc:isVersionOf <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
    73           dc11:title "Other title"@fr ;
    75           dc11:title "Other title"@fr ;
    74           dc:created "start=1988; end=1989"^^dc:Period ;
    76           dc:created "start=1988; end=1989"^^dc:Period ;
    75           dc:issued "2013-04-12T22:20:23+02:00"^^dc:W3CDTF ;
    77           dc:issued "2013-04-12T22:20:23+02:00"^^dc:W3CDTF ;
    76           dc:modified "2014-05-10T20:16:27+02:00"^^dc:W3CDTF ;
    78           dc:modified "2014-05-10T20:16:27+02:00"^^dc:W3CDTF ;
    77           dc11:language <http://lexvo.org/id/iso639-3/gsw>, <http://lexvo.org/id/iso639-3/fra> ;
    79           dc11:language <http://lexvo.org/id/iso639-3/gsw>, <http://lexvo.org/id/iso639-3/fra> ;
    84           ] .
    86           ] .
    85 EOT
    87 EOT
    86     ];
    88     ];
    87 
    89 
    88     const TEST_INPUT_ID = "crdo-COLLECTION_CFPP2000";
    90     const TEST_INPUT_ID = "crdo-COLLECTION_CFPP2000";
    89     const TEST_GRAPH_URI = "http://corpusdelaparole.huma-num.fr/corpus/res/crdo-COLLECTION_CFPP2000";
       
    90     const TEST_CHO_URI = "http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000";
    91     const TEST_CHO_URI = "http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000";
    91 
    92 
    92 
    93 
    93     private $inputGraphes = [];
    94     private $inputGraphes = [];
    94     private $resGraph;
    95     private $resGraph;
    99     }
   100     }
   100 
   101 
   101     public function setUp() {
   102     public function setUp() {
   102         parent::setUp();
   103         parent::setUp();
   103 
   104 
       
   105         $this->testGraphUri = config('corpusparole.corpus_doc_id_base_uri').CocoonCollectionRdfMergerTest::TEST_INPUT_ID;
   104         foreach(CocoonCollectionRdfMergerTest::TEST_INPUT_DOCS as $key => $inputDoc) {
   106         foreach(CocoonCollectionRdfMergerTest::TEST_INPUT_DOCS as $key => $inputDoc) {
   105             $this->inputGraphes[$key] = new Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000", $inputDoc);
   107             $this->inputGraphes[$key] = new Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-COLLECTION_CFPP2000", sprintf($inputDoc, config('corpusparole.corpus_doc_id_base_uri')));
   106         }
   108         }
   107 
   109 
   108         $this->merger = new CocoonCollectionRdfMerger();
   110         $this->merger = new CocoonCollectionRdfMerger();
   109         $this->resGraph = $this->merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']);
   111         $this->resGraph = $this->merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']);
   110     }
   112     }
   129      *
   131      *
   130      * @return void
   132      * @return void
   131      */
   133      */
   132     public function testResGraph() {
   134     public function testResGraph() {
   133         $this->assertNotNull($this->resGraph, "Res graph must not be null");
   135         $this->assertNotNull($this->resGraph, "Res graph must not be null");
   134         $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000", $this->resGraph->getUri(), "graph uri must be equals to http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND");
   136         $this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-COLLECTION_CFPP2000", $this->resGraph->getUri(), "graph uri must be equals to ".config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND");
   135     }
   137     }
       
   138 
       
   139 
   136 
   140 
   137     /**
   141     /**
   138      * test the merged Aggregation
   142      * test the merged Aggregation
   139      *
   143      *
   140      * @return void
   144      * @return void
   142     public function testCollectionResource() {
   146     public function testCollectionResource() {
   143         $collectionResList = $this->resGraph->allOfType('http://www.europeana.eu/schemas/edm/Collection');
   147         $collectionResList = $this->resGraph->allOfType('http://www.europeana.eu/schemas/edm/Collection');
   144         $this->assertCount(1, $collectionResList, "Only one Collection node");
   148         $this->assertCount(1, $collectionResList, "Only one Collection node");
   145         $collectionRes = $collectionResList[0];
   149         $collectionRes = $collectionResList[0];
   146 
   150 
   147         $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000",$collectionRes->getUri(),"Collection node uri must be http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000");
   151         $this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-COLLECTION_CFPP2000",$collectionRes->getUri(),"Collection node uri must be ".config('corpusparole.corpus_doc_id_base_uri')."crdo-COLLECTION_CFPP2000");
   148 
   152 
   149         $singleValuesRes = [
   153         $singleValuesRes = [
   150             'http://purl.org/dc/elements/1.1/title' => ['size'=>1, 'val' => new Literal("Corpus de Français Parlé Parisien des années 2000 (CFPP)", "fr", null)],
   154             'http://purl.org/dc/elements/1.1/title' => ['size'=>1, 'val' => new Literal("Corpus de Français Parlé Parisien des années 2000 (CFPP)", "fr", null)],
   151             'http://purl.org/dc/terms/available' => ['size'=>1, 'val' => new Literal("2013-04-12", null, "dc:W3CDTF")],
   155             'http://purl.org/dc/terms/available' => ['size'=>1, 'val' => new Literal("2013-04-12", null, "dc:W3CDTF")],
   152             'http://purl.org/dc/terms/created' => ['size'=>1, 'val' => new Literal("start=1988; end=1989", null, "dc:Period")],
   156             'http://purl.org/dc/terms/created' => ['size'=>1, 'val' => new Literal("start=1988; end=1989", null, "dc:Period")],
   209         $this->assertCount(1, $sameas, "1 same as");
   213         $this->assertCount(1, $sameas, "1 same as");
   210         $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $sameas, "Notes mus be only resources");
   214         $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $sameas, "Notes mus be only resources");
   211         $this->assertEquals('http://vocab.getty.edu/tgn/7008038', $sameas[0]->getUri(), "uri must be http://vocab.getty.edu/tgn/7008038");
   215         $this->assertEquals('http://vocab.getty.edu/tgn/7008038', $sameas[0]->getUri(), "uri must be http://vocab.getty.edu/tgn/7008038");
   212     }
   216     }
   213 
   217 
       
   218     public function testLinkToCocoonCollection() {
       
   219         $coll = $this->resGraph->get('edm:Collection', '^rdf:type');
       
   220 
       
   221         $this->assertNotNull($coll);
       
   222 
       
   223         $versionOfRes = $coll->all("<http://purl.org/dc/terms/isVersionOf>");
       
   224         $this->assertCount(1, $versionOfRes, "Must have only on isVersionOf");
       
   225         $versionOfRes = $versionOfRes[0];
       
   226         $this->assertInstanceOf("EasyRdf\Resource", $versionOfRes, "version Res must be a resource");
       
   227         $this->assertEquals(CocoonCollectionRdfMergerTest::TEST_CHO_URI, $versionOfRes->getUri(), "versionof res uri must be sams than source");
       
   228 
       
   229     }
       
   230 
       
   231 
   214 
   232 
   215 
   233 
   216 }
   234 }