# HG changeset patch # User ymh # Date 1488463757 -3600 # Node ID cdaf9dfb5dfdb85ae6f3a633f9be85cea054be5f # Parent c06db7aa1b1044dd4bfd894c02c56b2d77a8d5f5 correct licence problem in bug #0026523 diff -r c06db7aa1b10 -r cdaf9dfb5dfd .hgignore --- a/.hgignore Thu Feb 23 18:59:04 2017 +0100 +++ b/.hgignore Thu Mar 02 15:09:17 2017 +0100 @@ -8,6 +8,7 @@ ^dev/corpus-dev.box$ ^dev/.*\.rpm ^dev/provisioning/custom.yaml +^dev/proxy ^server/data ^server/src/\.git.* ^server/src/\.env diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/app/Console/Commands/ImportCocoonRDF.php --- a/server/src/app/Console/Commands/ImportCocoonRDF.php Thu Feb 23 18:59:04 2017 +0100 +++ b/server/src/app/Console/Commands/ImportCocoonRDF.php Thu Mar 02 15:09:17 2017 +0100 @@ -200,7 +200,7 @@ * * @return mixed */ - public function fire() { + public function handle() { libxml_use_internal_errors(true); diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/app/Libraries/Mappers/CocoonContentRdfMapper.php --- a/server/src/app/Libraries/Mappers/CocoonContentRdfMapper.php Thu Feb 23 18:59:04 2017 +0100 +++ b/server/src/app/Libraries/Mappers/CocoonContentRdfMapper.php Thu Mar 02 15:09:17 2017 +0100 @@ -59,6 +59,11 @@ $aggregationNode->add('edm:isShownBy', $masterList[0]); } + $this->setRightsAggregationNode($res, $aggregationNode); + + } + + protected function setRightsAggregationNode($res, $aggregationNode) { $license = $res->get('dc:license'); $matches = []; diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/app/Libraries/Mergers/CocoonSoundRdfMerger.php --- a/server/src/app/Libraries/Mergers/CocoonSoundRdfMerger.php Thu Feb 23 18:59:04 2017 +0100 +++ b/server/src/app/Libraries/Mergers/CocoonSoundRdfMerger.php Thu Mar 02 15:09:17 2017 +0100 @@ -132,10 +132,33 @@ $srcRight = $srcArray[$prop][0]; } + $license = [ 'type' => 'uri', 'value' => config('corpusparole.corpus_doc_default_cc_rights') ]; - if($baseRight != null && $baseRight == $srcRight ) { + if($baseRight == null && $srcRight != null) { + $license = $srcRight; + } elseif($baseRight != null && $srcRight == null) { $license = $baseRight; + } elseif($baseRight != null && $srcRight != null) { + + // The sound rights takes precedence. We test for Text which is easier. + $soundRight = null; + $baseCHO = $baseRes->get(""); + if(!is_null($baseCHO)) { + foreach ($baseCHO->all("dc11:type","resource") as $resType) { + $type = $resType->getUri(); + if($type === 'http://purl.org/dc/dcmitype/Text') { + // the baseRes is a text, we take the source + $soundRight = $srcRight; + break; + } + } + } + // in all case we take the base right + if(is_null($soundRight)) { + $soundRight = $baseRight; + } + $license = $soundRight; } $targetArray[$prop] = [$license,]; diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/tests/Libraries/Mappers/CocoonSoundRdfMapperTest.php --- a/server/src/tests/Libraries/Mappers/CocoonSoundRdfMapperTest.php Thu Feb 23 18:59:04 2017 +0100 +++ b/server/src/tests/Libraries/Mappers/CocoonSoundRdfMapperTest.php Thu Mar 02 15:09:17 2017 +0100 @@ -82,7 +82,7 @@ "ESLO1: entretien 019 alt"@fr ; , ; " Freely available for non-commercial use" ; - ; + ; , ; "PT0H47M16S" ; "1969-04-11"^^ ; @@ -238,6 +238,23 @@ } /** + * test rights on no-format + * + * @return void + */ + public function testRightsOtherLicense() { + $rightsNodes = $this->resGraphes['NO-FORMAT']->all($this->testGraphUri, 'edm:rights'); + + $this->assertCount(1, $rightsNodes, "One edm:right"); + + $rights = $rightsNodes[0]; + + $this->assertTrue($rights instanceof Resource); + + $this->assertEquals("http://creativecommons.org/licenses/by-nc-nd/4.0/", $rights->getUri(), "right must be CC-BY-NC"); + } + + /** * Test that the return graph has one ore:Aggregation resource * * @return void diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/tests/Libraries/Mergers/CocoonSoundRdfMergerTest.php --- a/server/src/tests/Libraries/Mergers/CocoonSoundRdfMergerTest.php Thu Feb 23 18:59:04 2017 +0100 +++ b/server/src/tests/Libraries/Mergers/CocoonSoundRdfMergerTest.php Thu Mar 02 15:09:17 2017 +0100 @@ -19,7 +19,8 @@ 'SOURCE' => __DIR__.'/files/CocoonSoundRdfMergerTest/source_doc.ttl', 'BASE_NO_SPATIAL' => __DIR__.'/files/CocoonSoundRdfMergerTest/base_no_spatial.ttl', 'SOURCE_NO_SPATIAL' => __DIR__.'/files/CocoonSoundRdfMergerTest/source_no_spatial.ttl', - 'SOURCE_MORE_SPATIAL_NOTES' => __DIR__.'/files/CocoonSoundRdfMergerTest/source_more_spatial_notes.ttl' + 'SOURCE_MORE_SPATIAL_NOTES' => __DIR__.'/files/CocoonSoundRdfMergerTest/source_more_spatial_notes.ttl', + 'SOURCE_RIGHTS' => __DIR__.'/files/CocoonSoundRdfMergerTest/source_rights.ttl', ]; const TEST_INPUT_ID = "crdo-ESLO1_ENT_019"; @@ -320,6 +321,27 @@ } /** + * Test rights merge + * + * @return void + */ + public function testRightsDifferentsAggregatedCHO() { + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE_RIGHTS']); + + + $aggregationResList = $this->resGraph['NORMAL']->allOfType('http://www.openarchives.org/ore/terms/Aggregation'); + $this->assertCount(1, $aggregationResList, "Only one Aggregation node"); + $aggregationRes = $aggregationResList[0]; + + $resList = $aggregationRes->all($this->inputGraphes['BASE']->resource('http://www.europeana.eu/schemas/edm/rights')); + $this->assertCount(1, $resList, "'http://www.europeana.eu/schemas/edm/rights' list size 1"); + $this->assertEquals($this->resGraph['NORMAL']->resource("http://creativecommons.org/licenses/by-nc-sa/4.0/"), $resList[0], "'http://www.europeana.eu/schemas/edm/rights' size one not equals"); + + } + + + /** * Test one to one mapping spatial info * * @return void diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/tests/Libraries/Mergers/CocoonTextRdfMergerTest.php --- a/server/src/tests/Libraries/Mergers/CocoonTextRdfMergerTest.php Thu Feb 23 18:59:04 2017 +0100 +++ b/server/src/tests/Libraries/Mergers/CocoonTextRdfMergerTest.php Thu Mar 02 15:09:17 2017 +0100 @@ -239,7 +239,7 @@ $this->assertNotNull($license, "The licence must not be null"); $this->assertInstanceOf("EasyRdf\Resource", $license, "Licence must be a resource"); - $this->assertEquals(config('corpusparole.corpus_doc_default_cc_rights'), $license->getUri(), "License must be default licence"); + $this->assertEquals('http://creativecommons.org/licenses/by-nc-nd/4.0/', $license->getUri(), "License must be sound licence"); } public function testRightSame() { diff -r c06db7aa1b10 -r cdaf9dfb5dfd server/src/tests/Libraries/Mergers/files/CocoonSoundRdfMergerTest/source_rights.ttl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/tests/Libraries/Mergers/files/CocoonSoundRdfMergerTest/source_rights.ttl Thu Mar 02 15:09:17 2017 +0100 @@ -0,0 +1,68 @@ +@prefix ore: . +@prefix edm: . +@prefix dc11: . +@prefix olac: . +@prefix dc: . +@prefix geo: . +@prefix xsd: . +@prefix skos: . +@prefix owl: . + + + a ore:Aggregation ; + edm:aggregatedCHO ; + edm:provider "Corpus de la Parole"@fr ; + edm:dataProvider ; + edm:isShownAt ; + edm:isShownBy ; + edm:rights ; + edm:hasView , , . + + + a edm:ProvidedCHO ; + dc11:identifier "crdo-CFPP2000_35_SOUNDsource" ; + dc11:description "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr, "Enregistrement: Caractéristiques de l'enregistrement; Identifiant : CFPP2000 [03-01] Ozgur_Kilic_H_32_alii_3e; Langue : français; Editeur : Université Paris III – Syled ; Date : 17.11.2010; Lieu de l'enregistrement : au domicile de l’enquêté Özgur KILIÇ ; Enquêteur : Sonia BRANCA-ROSOFF; Quartier(s) concerné(s) : Paris 3e, et 20e (pour l’âge adulte); Transcription : Noalig TANGUY; Anonymisation : Noalig TANGUY; Durée : 0h46’; "@fr, "Enquêteur: Etat civil; Prénom et NOM : Sonia BRANCA-ROSOFF; Sexe : féminin; Lieu de naissance : New-York (USA); Lieu la petite enfance : Bretagne, puis région parisienne, puis de 8 à 16 ans Nice; Date de naissance : 16.12.1947; Situation familiale : mariée, deux enfants; Mobilité géographique : Paris 1967-1971, Aix-en-Provence 1971-1996, Paris 1996-2012; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : Doctorat d’État (sciences du langage) 1987; Travail; Activité actuelle : Enseignante-chercheuse (linguistique française), Université de la Sorbonne Nouvelle-Paris III, Paris; Activités passées : ; Langues; Langue première : français; Parents (profession, lieu de naissance, scolarité…); Mère : née en 1916 à Nice (France), interprète de conférences ; licence d’anglais; Père : né en 1913 à Mananjary (Madagascar), ingénieur.; "@fr, "Enquêté 1: Etat civil; Prénom et NOM fictifs : Özgur KILIÇ ; Sexe : masculin; Lieu de naissance: Paris 11e, France; Lieu la petite enfance : Paris 11e, France; Date de naissance : 07.02.1979; Age au moment de l’enregistrement : 32 ans; Situation familiale : pacsé, deux enfants; Mobilité géographique : 3e, 18e, 20e arrondissements; Relation (parenté, ami, etc) avec Enquêteur : aucune; Relation (parenté, ami, etc) avec autres enquêtés : amis; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire st Merri 75003 ; Secondaire : Victor Hugo, Turgot 75003, Jean Lurçat 75013 général bac ES Supérieur. Puis St Denis université (cinéma); Travail; Activité actuelle : ingénieur du son pour l'audiovisuel; Activités passées : restauration, assistant son pour l'audiovisuel ; Langues; Langues pratiquées : français, anglais, turc; Parents (profession, lieu de naissance, scolarité…); Mère : psychothérapeute, né a Houilles région parisienne France; Père : professeur d'université, né a Istanbul en Turquie. ; "@fr, "Enquêté 2: Etat civil; Prénom et NOM fictifs : Michel CHEVRIER; Sexe : masculin; Lieu de naissance : naissance à Boulogne-Billancourt (92); Lieu la petite enfance : rue du Temple, 3e arrondissement, Paris; Date de naissance : 01.06.1979; Age au moment de l’enregistrement : 31 ans; Situation familiale : concubinage; Mobilité géographique : 3e, puis 20e (entre 2005 et 2009) puis Romainville (depuis 2009); Relation (parenté, ami, etc) avec Enquêteur : ; Relation (parenté, ami, etc) avec Enquêté NOM : ; Relation (parenté, ami, etc) avec Enquêté NOM : ; Prénom et NOM réels : ; Réseau par lequel contacté : ; Adresse (si connue) : ; Téléphone (si connu) : ; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire : École à aire ouverte rue St Merri 75003 ; Secondaire (Collège Victor Hugo 75003) puis Lycée Autogéré de Paris (75015) Bac Littéraire. Deux années au CIM (école de jazz) dans le 75018, puis 3 ans au conservatoire du 9eme; Travail; Activité actuelle : Musicien, Compositeur, Professeur de piano jazz ; Activités passées : Musicien; Langues; Langues pratiquées : français, anglais; Parents (profession, lieu de naissance, scolarité…); Mère : ancienne médecin généraliste pneumologue, puis sociologue, née en France; Père : enseignant en sciences de l'éducation à Paris 8 né en Belgique; "@fr, "Enquêté 3: Etat civil; Prénom et NOM fictifs : Benoît DU BREUIL-DE-PONT-EN-AUGE; Sexe : masculin; Lieu de naissance : Paris 14e; Lieu la petite enfance : Paris 3e; Date de naissance : 28.11.1978; Age au moment de l’enregistrement : 32 ans; Situation familiale : concubinage avéré, avec papier de la mairie tamponné et signé!; Mobilité géographique : à 2 ans vit dans le 9°, puis déménage pour le 3°, est resté dans la même rue pendant 20 ans tout en changeant d'immeuble. Ensuite le 19° pendant 4 ans, puis Pantin 6 mois puis Les Lilas. ; Relation (parenté, ami, etc) avec Enquêteur : aucune; Relation (parenté, ami, etc) avec autres enquêtés : voir Scolarité, Précisions; Prénom et NOM réels : ; Réseau par lequel contacté : ; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [ ] Post-licence [ ] ; Dernier diplôme, avec année d’obtention : CAP; Précisions : Primaire école à aire ouverte (St Merri) dans le 4° avec Augustin, Ôzgur, Michel. Secondaire : collège Victor-Hugo dans le 3° avec Ôzgur ; puis CAP ; Travail; Activité actuelle : ; Activités passées : ébéniste agenceur puis ébéniste restaurateur et enfin constructeur décors (ainsi que de nombreux petits jobs ayant duré moins d'un an); Langues; Langues pratiquées : français; Parents (profession, lieu de naissance, scolarité…); Mère : à la retraite ; secrétaire de rédaction dans un grand journal, baccalauréat ; née à Montrouge; Père : conseiller à travail à pole emploi, né à Boulogne Billancourt, baccalauréat présenté 3 ou 4 fois, puis obtenu par équivalence. ; "@fr, "Enquêté 4: Etat civil; Enquêté 4; Prénom et NOM fictifs : ; Sexe : féminin / masculin; Lieu de naissance : Paris 14e; Lieu de la petite enfance : Paris 4e et 3e ; Date de naissance : 06.12.1976; Age au moment de l’enregistrement : 34 ans; Situation familiale : ; Mobilité géographique : Rue la Bruyère 75009 (1976-1978), Rambuteau 75004 (1978-1987/88) & 75003 (chgt de côté de rue 1988-1998), a quitté Paris de 1998 à 2005 ; Rue Rambuteau 75003 (2006-2010), rue Gossec 75012 (2011); Relation (parenté, ami, etc) avec Enquêteur : aucune; Relation (parenté, ami, etc) avec Enquêté 2 : ami; Relation (parenté, ami, etc) avec Enquêté NOM : ; Réseau par lequel contacté : ; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire : Ecole St Merri 75003. Secondaire : Collège François Couperin 75004, Institut St Pierre Fourier 75012 ; Cours Charlemagne 75014 ; Travail; Activité actuelle : Superviseur Centre d'appels ; Activités passées : Animateur Club Enfant, Réceptionniste ; Langues; Langues pratiquées :; Parents (profession, lieu de naissance, scolarité…); Mère : retraitée, Paris, bac + 1/2 (?) ; Père : Conseiller Pôle Emploi, Paris, bac. ; "@fr, "Enquêté 5: Etat civil; Prénom et NOM fictifs : Étienne SALVEGAS; Sexe : masculin; Lieu de naissance : Paris 12e; Lieu de la petite enfance : Paris 3e Le Marais; Date de naissance : 16.06.1978; Age au moment de l’enregistrement : 32 ans; Situation familiale : marié 1 enfant, 12 ans de vie commune ; Mobilité géographique : 3e (1978-1999) 19e (1999-2002) 9e (2002-2011) ; Relation (parenté, ami, etc) avec Enquêteur : ; Relation (parenté, ami, etc) avec Enquêté 2 : ami ; Relation (parenté, ami, etc) avec Enquêté NOM : ; Prénom et NOM réels : ; Scolarité; Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [ ] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire : Ecole Vertus, rue des Vertus 3ème. Secondaire Collège Montgolfier / Lycée Turgot 3ème. Supérieur Droit Univ. Paris Panthéon Sorbonne ; Travail; Activité actuelle : évènementiel; Activités passées : stagiaire journaliste sportif / relations publiques, accueil, agent de sécurité, remplacement gardien, réceptionniste hôtellerie.; Langues; Langues pratiquées :; Parents (profession, lieu de naissance, scolarité…); Mère : né à Paris, lycée ; Père : né à Oloron (64), lycée ; "@fr ; + dc11:language ; + dc11:publisher ; + dc11:type "primary_text"^^olac:linguistic-type, "narrative"^^olac:discourse-type, "report"^^olac:discourse-type, "unintelligible_speech"^^olac:discourse-type ; + dc:license ; + dc11:subject "lexicography"^^olac:linguistic-field, "phonetics"^^olac:linguistic-field, "anthropological_linguistics"^^olac:linguistic-field, "general_linguistics"^^olac:linguistic-field, , "text_and_corpus_linguistics"^^olac:linguistic-field, "phonology"^^olac:linguistic-field, "semantics"^^olac:linguistic-field, "sociolinguistics"^^olac:linguistic-field, "syntax"^^olac:linguistic-field, "typology"^^olac:linguistic-field, "discourse_analysis"^^olac:linguistic-field, "historical_linguistics"^^olac:linguistic-field, "language_documentation"^^olac:linguistic-field, "mathematical_linguistics"^^olac:linguistic-field ; + dc11:title "CFPP2000 [03-01] Ozgur_Kilic_H_32_alii_3e Entretien de Ozgur KILIÇ 2 (annotations)"@fr ; + dc:accessRights "Freely available for non-commercial use" ; + dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" ; + dc:isPartOf , ; + dc11:source "CFPP2000"@fr ; + dc11:coverage "Quartier concerné : 3e"@fr ; + olac:depositor ; + dc11:contributor , "Branca-Rosoff, Sonia", "Kiliç Ozgur", "Chevrier Michel", "du-Breuil-de-Pont-en-Auge Benoît", "du-Breuil-de-Pont-en-Auge Augustin", "Salvegas Etienne", "Tanguy Noalig" ; + olac:interviewer "Branca-Rosoff, Sonia" ; + olac:responder "Kiliç Ozgur", "Chevrier Michel", "du-Breuil-de-Pont-en-Auge Benoît", "du-Breuil-de-Pont-en-Auge Augustin", "Salvegas Etienne" ; + olac:transcriber "Tanguy Noalig" ; + dc:available "2013-11-04"^^dc:W3CDTF ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-11-04T22:20:07+01:00"^^dc:W3CDTF ; + dc:spatial [ + a edm:Place ; + geo:lat "99.83975"^^xsd:float ; + geo:long "25.3542"^^xsd:float ; + skos:note "FR"^^dc:ISO3166, "France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr, "Other place very important"@fr ; + owl:sameAs + ] . + + + a edm:WebResource ; + dc11:format "application/xml"^^dc:IMT ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-11-04T22:20:07+01:00"^^dc:W3CDTF ; + dc:license ; + dc:accessRights "Freely available for non-commercial use" ; + dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" . + + + a edm:WebResource ; + dc11:format "application/xhtml+xml"^^dc:IMT ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-11-04T22:20:07+01:00"^^dc:W3CDTF ; + dc:license ; + dc:accessRights "Freely available for non-commercial use" ; + dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" .