diff -r 17f10b56c079 -r 8fddc113095e server/src/tests/Libraries/Mergers/CocoonSoundRdfMergerTest.php --- a/server/src/tests/Libraries/Mergers/CocoonSoundRdfMergerTest.php Thu Jun 02 18:24:19 2016 +0200 +++ b/server/src/tests/Libraries/Mergers/CocoonSoundRdfMergerTest.php Sun Jun 05 00:28:45 2016 +0200 @@ -15,165 +15,10 @@ { const TEST_INPUT_DOCS = [ - 'BASE' => << . - @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_SOUND" ; - 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 ; - dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" ; - 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"@fr ; - dc:accessRights "Freely available for non-commercial use" ; - dc:extent "PT48M26S" ; - 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-10-12"^^dc:W3CDTF ; - dc:created "2010-11-17"^^dc:W3CDTF ; - dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF ; - dc:spatial [ - a edm:Place ; - geo:lat "48.83975"^^xsd:float ; - geo:long "2.3542"^^xsd:float ; - skos:note "FR"^^dc:ISO3166, "France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr ; - owl:sameAs - ] . - - - a edm:WebResource ; - dc:extent "PT48M26S" ; - dc11:format "audio/x-wav"^^dc:IMT ; - dc:created "2010-11-17"^^dc:W3CDTF ; - dc:accessRights "Freely available for non-commercial use" ; - dc:license ; - dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" ; - dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF . - - - a edm:WebResource ; - dc:extent "PT48M26S" ; - dc11:format "audio/x-wav"^^dc:IMT ; - edm:isDerivativeOf ; - dc:created "2010-11-17"^^dc:W3CDTF ; - dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF ; - dc:accessRights "Freely available for non-commercial use" ; - dc:license ; - dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" . - - - - a edm:WebResource ; - dc:extent "PT48M26S" ; - dc11:format "audio/mpeg"^^dc:IMT ; - edm:isDerivativeOf ; - dc:created "2010-11-17"^^dc:W3CDTF ; - dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF ; - dc:accessRights "Freely available for non-commercial use" ; - dc:license ; - dc11:rights "Copyright (c) 2012 Université d'Orléans/LLL" . - -EOT - , - 'SOURCE' => << . - @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" . - -EOT + 'BASE' => __DIR__.'/files/CocoonSoundRdfMergerTest/base_doc.ttl', + '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' ]; const TEST_INPUT_ID = "crdo-ESLO1_ENT_019"; @@ -183,7 +28,6 @@ private $inputGraphes = []; private $resGraph; - private $merger; function __construct(string $name = null) { parent::__construct($name); @@ -193,11 +37,9 @@ parent::setUp(); foreach(CocoonSoundRdfMergerTest::TEST_INPUT_DOCS as $key => $inputDoc) { - $this->inputGraphes[$key] = new Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND", $inputDoc); + $this->inputGraphes[$key] = new Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND", file_get_contents($inputDoc)); } - $this->merger = new CocoonSoundRdfMerger(); - $this->resGraph = $this->merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); } public function tearDown() { @@ -211,8 +53,11 @@ */ public function testInit() { + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); + $this->assertTrue(true); - //echo $this->resGraph->serialise('turtle'); + //echo $this->resGraph['NORMAL']->serialise('turtle'); } /** @@ -221,8 +66,11 @@ * @return void */ public function testResGraph() { - $this->assertNotNull($this->resGraph, "Res graph must not be null"); - $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND", $this->resGraph->getUri(), "graph uri must be equals to http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND"); + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); + + $this->assertNotNull($this->resGraph['NORMAL'], "Res graph must not be null"); + $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND", $this->resGraph['NORMAL']->getUri(), "graph uri must be equals to http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND"); } /** @@ -231,24 +79,27 @@ * @return void */ public function testAggregationResource() { - $aggregationResList = $this->resGraph->allOfType('http://www.openarchives.org/ore/terms/Aggregation'); + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); + + $aggregationResList = $this->resGraph['NORMAL']->allOfType('http://www.openarchives.org/ore/terms/Aggregation'); $this->assertCount(1, $aggregationResList, "Only one Aggregation node"); $aggregationRes = $aggregationResList[0]; $this->assertEquals("http://corpusdelaparole.huma-num.fr/corpus/res/crdo-CFPP2000_35_SOUND",$aggregationRes->getUri(),"Aggregation node uri must be http://corpusdelaparole.huma-num.fr/corpus/res/crdo-CFPP2000_35_SOUND"); $singleValuesRes = [ - 'http://www.europeana.eu/schemas/edm/aggregatedCHO' => ['size'=>1, 'val' => $this->resGraph->resource("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND")], + 'http://www.europeana.eu/schemas/edm/aggregatedCHO' => ['size'=>1, 'val' => $this->resGraph['NORMAL']->resource("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND")], 'http://www.europeana.eu/schemas/edm/provider' => ['size'=>1, 'val' => new Literal("Corpus de la Parole", "fr", null)], - 'http://www.europeana.eu/schemas/edm/dataProvider' => ['size'=>1, 'val' => $this->resGraph->resource("http://viaf.org/viaf/142432638")], - 'http://www.europeana.eu/schemas/edm/isShownAt' => ['size'=>1, 'val' => $this->resGraph->resource("http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND")], - 'http://www.europeana.eu/schemas/edm/isShownBy' => ['size'=>1, 'val' => $this->resGraph->resource("http://cocoon.huma-num.fr/data/archi/masters/372593.wav")], - 'http://www.europeana.eu/schemas/edm/rights' => ['size'=>1, 'val' => $this->resGraph->resource("http://creativecommons.org/licenses/by-nc-sa/4.0/")], + 'http://www.europeana.eu/schemas/edm/dataProvider' => ['size'=>1, 'val' => $this->resGraph['NORMAL']->resource("http://viaf.org/viaf/142432638")], + 'http://www.europeana.eu/schemas/edm/isShownAt' => ['size'=>1, 'val' => $this->resGraph['NORMAL']->resource("http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND")], + 'http://www.europeana.eu/schemas/edm/isShownBy' => ['size'=>1, 'val' => $this->resGraph['NORMAL']->resource("http://cocoon.huma-num.fr/data/archi/masters/372593.wav")], + 'http://www.europeana.eu/schemas/edm/rights' => ['size'=>1, 'val' => $this->resGraph['NORMAL']->resource("http://creativecommons.org/licenses/by-nc-sa/4.0/")], 'http://www.europeana.eu/schemas/edm/hasView' => ['size' => 4, 'val' => [ - $this->resGraph->resource("http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav"), - $this->resGraph->resource("http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3"), - $this->resGraph->resource("http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml"), - $this->resGraph->resource("http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xhtml") + $this->resGraph['NORMAL']->resource("http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav"), + $this->resGraph['NORMAL']->resource("http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3"), + $this->resGraph['NORMAL']->resource("http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml"), + $this->resGraph['NORMAL']->resource("http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xhtml") ]] ]; @@ -271,7 +122,10 @@ * @return void */ public function testWebResources() { - $webResList = $this->resGraph->allOfType('http://www.europeana.eu/schemas/edm/WebResource'); + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); + + $webResList = $this->resGraph['NORMAL']->allOfType('http://www.europeana.eu/schemas/edm/WebResource'); $this->assertCount(5, $webResList, "Must have 5 webResource"); } @@ -282,12 +136,16 @@ * * @return void */ + public function testProvidedCHOSpatial() { - $providedCHO = $this->resGraph->get('edm:ProvidedCHO', '^rdf:type'); + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); + + $providedCHO = $this->resGraph['NORMAL']->get('edm:ProvidedCHO', '^rdf:type'); $this->assertNotNull($providedCHO); - $spatials = $providedCHO->all($this->resGraph->resource('http://purl.org/dc/terms/spatial')); + $spatials = $providedCHO->all($this->resGraph['NORMAL']->resource('http://purl.org/dc/terms/spatial')); $this->assertCount(1, $spatials, "Must have only one spatial node"); $spatial = $spatials[0]; @@ -318,12 +176,93 @@ } + public function testProvidedCHOSpatialNoSource() { + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NO_SPATIAL_SRC'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE_NO_SPATIAL']); + $providedCHO = $this->resGraph['NO_SPATIAL_SRC']->get('edm:ProvidedCHO', '^rdf:type'); + + //print($this->resGraph['NO_SPATIAL_SRC']->dump('ttl')); + + $this->assertNotNull($providedCHO); + + $spatials = $providedCHO->all($this->resGraph['NO_SPATIAL_SRC']->resource('http://purl.org/dc/terms/spatial')); + + $this->assertCount(1, $spatials, "Must have only one spatial node"); + $spatial = $spatials[0]; + $this->assertTrue($spatial->isBNode(),"spatial node must be blank"); + $this->assertEquals("edm:Place", $spatial->type(), "spatial node type must be edm:Place"); + + $lats = $spatial->all('geo:lat'); + $this->assertCount(1, $lats, "One latitude"); + $this->assertInstanceOf("EasyRdf\Literal", $lats[0], "Latitude must be a litteral"); + $this->assertEquals(Literal::create("48.83975", null, 'xsd:float'), $lats[0], "lat must be '48.83975'^^xsd:float"); + + $longs = $spatial->all('geo:long'); + $this->assertCount(1, $longs, "One longitude"); + $this->assertInstanceOf("EasyRdf\Literal", $longs[0], "Longitude must be a litteral"); + $this->assertEquals(Literal::create("2.3542", null, 'xsd:float'), $longs[0], "long must be '2.3542'^^xsd:float"); + + $notes = $spatial->all('skos:note'); + $this->assertCount(2, $notes, "2 notes"); + $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $notes, "Notes mus be only literals"); + $this->assertEquals(Literal::create("FR", null, "dc:ISO3166"), $notes[0], "notes contains 'FR'^^dc:ISO3166"); + $this->assertEquals(Literal::create("France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier", "fr", null), $notes[1], "notes contains 'France, Centre, Loiret, Orléans'@fr"); + + $sameas = $spatial->all('owl:sameAs'); + $this->assertCount(1, $sameas, "1 same as"); + $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $sameas, "Notes mus be only resources"); + $this->assertEquals('http://vocab.getty.edu/tgn/7008038', $sameas[0]->getUri(), "uri must be http://vocab.getty.edu/tgn/7008038"); + } + + public function testProvidedCHOSpatialNoBase() { + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NO_SPATIAL_BASE'] = $merger->mergeGraph($this->inputGraphes['BASE_NO_SPATIAL'], $this->inputGraphes['SOURCE']); + + $providedCHO = $this->resGraph['NO_SPATIAL_BASE']->get('edm:ProvidedCHO', '^rdf:type'); + + //print($this->resGraph['NO_SPATIAL_SRC']->dump('ttl')); + + $this->assertNotNull($providedCHO); + + $spatials = $providedCHO->all($this->resGraph['NO_SPATIAL_BASE']->resource('http://purl.org/dc/terms/spatial')); + + $this->assertCount(1, $spatials, "Must have only one spatial node"); + $spatial = $spatials[0]; + $this->assertTrue($spatial->isBNode(),"spatial node must be blank"); + $this->assertEquals("edm:Place", $spatial->type(), "spatial node type must be edm:Place"); + + $lats = $spatial->all('geo:lat'); + $this->assertCount(1, $lats, "One latitude"); + $this->assertInstanceOf("EasyRdf\Literal", $lats[0], "Latitude must be a litteral"); + $this->assertEquals(Literal::create("99.83975", null, 'xsd:float'), $lats[0], "lat must be '99.83975'^^xsd:float"); + + $longs = $spatial->all('geo:long'); + $this->assertCount(1, $longs, "One longitude"); + $this->assertInstanceOf("EasyRdf\Literal", $longs[0], "Longitude must be a litteral"); + $this->assertEquals(Literal::create("25.3542", null, 'xsd:float'), $longs[0], "long must be '25.3542'^^xsd:float"); + + $notes = $spatial->all('skos:note'); + $this->assertCount(3, $notes, "3 notes"); + $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $notes, "Notes mus be only literals"); + $this->assertEquals(Literal::create("FR", null, "dc:ISO3166"), $notes[0], "notes contains 'FR'^^dc:ISO3166"); + $this->assertEquals(Literal::create("France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier", "fr", null), $notes[1], "notes contains 'France, Centre, Loiret, Orléans'@fr"); + $this->assertEquals(Literal::create("Other place very important", "fr", null), $notes[2], "notes contains 'Other place very important'@fr"); + + $sameas = $spatial->all('owl:sameAs'); + $this->assertCount(1, $sameas, "1 same as"); + $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $sameas, "Notes mus be only resources"); + $this->assertEquals('http://vocab.getty.edu/tgn/1234567890', $sameas[0]->getUri(), "uri must be http://vocab.getty.edu/tgn/1234567890"); + } + + /** * Test one to one mapping * * @return void */ public function testProvidedCHOSingleproperty() { + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); $properties = [ "http://purl.org/dc/elements/1.1/title", @@ -334,7 +273,7 @@ "http://purl.org/dc/terms/issued" ]; - $providedCHO = $this->resGraph->get('edm:ProvidedCHO', '^rdf:type'); + $providedCHO = $this->resGraph['NORMAL']->get('edm:ProvidedCHO', '^rdf:type'); $baseNode = $this->inputGraphes['BASE']->get('edm:ProvidedCHO', '^rdf:type'); $this->assertNotNull($providedCHO); @@ -342,7 +281,7 @@ foreach ($properties as $prop) { $outputValuesStr = []; - foreach($providedCHO->all($this->resGraph->resource($prop)) as $outputValue) { + foreach($providedCHO->all($this->resGraph['NORMAL']->resource($prop)) as $outputValue) { array_push($outputValuesStr, strval($outputValue)); } $this->assertNotEmpty($outputValuesStr, "we must found some values to test $prop"); @@ -354,20 +293,23 @@ } public function testRightsWebResource() { + $merger = new CocoonSoundRdfMerger(); + $this->resGraph['NORMAL'] = $merger->mergeGraph($this->inputGraphes['BASE'], $this->inputGraphes['SOURCE']); + $properties = [ "http://purl.org/dc/elements/1.1/rights", 'http://purl.org/dc/terms/license', 'http://purl.org/dc/terms/accessRights', ]; - $webResourceList = $this->resGraph->all('edm:WebResource', '^rdf:type'); + $webResourceList = $this->resGraph['NORMAL']->all('edm:WebResource', '^rdf:type'); //just check that they have all these resources. //TODO: check that the same rights are kept (difficult) foreach ($webResourceList as $webResource) { foreach ($properties as $prop) { $outputValuesStr = []; - foreach($webResource->all($this->resGraph->resource($prop)) as $outputValue) { + foreach($webResource->all($this->resGraph['NORMAL']->resource($prop)) as $outputValue) { array_push($outputValuesStr, strval($outputValue)); } $this->assertNotEmpty($outputValuesStr, "we must found some values to test $prop");