--- a/cms/app-client/mirage/serializers/sparse-document.js Thu Sep 22 15:34:10 2016 +0200
+++ b/cms/app-client/mirage/serializers/sparse-document.js Thu Sep 22 15:42:12 2016 +0200
@@ -3,7 +3,7 @@
import _ from 'lodash';
export default BaseSerializer.extend({
- attrs: ['id', 'title', 'language', 'url', 'issued', 'modified', 'publishers', 'mediaArray'],
+ attrs: ['id', 'title', 'language', 'url', 'issued', 'modified', 'publishers', 'mediaArray', 'transcript'],
serialize(response, request) {
@@ -12,9 +12,10 @@
let json = BaseSerializer.prototype.serialize.apply(this, arguments);
json['documents'] = _.map(json['documents'], function(doc) {
- let res = _.omit(doc, ['publishers', 'mediaArray']);
+ let res = _.omit(doc, ['publishers', 'mediaArray', 'transcript']);
res['publisher'] = doc['publishers'].join(', ');
res['duration_ms'] = doc['mediaArray']?doc['mediaArray'][_(Object.keys(doc['mediaArray'])).first()]['extent_ms']:0;
+ res['transcript_url'] = (doc['transcript'] && doc['transcript']['url'])?doc['transcript']['url']:null;
return res;
});
--- a/server/bo_client/app/models/document.js Thu Sep 22 15:34:10 2016 +0200
+++ b/server/bo_client/app/models/document.js Thu Sep 22 15:42:12 2016 +0200
@@ -17,10 +17,12 @@
subjects: DS.attr({defaultValue: function() { return []; }}),
+ reflocs: DS.attr({defaultValue: function() { return []; }}),
+
mediaArray: DS.attr({defaultValue: function() { return []; }}),
encodedId: Ember.computed('id', function() {
- return encodeURIComponent(this.get('id'));
+ return encodeURIComponent(this.get('id'));
}),
mediaList: Ember.computed('mediaArray', function() {
--- a/server/src/.env.example Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/.env.example Thu Sep 22 15:42:12 2016 +0200
@@ -19,6 +19,8 @@
MAIL_USERNAME=null
MAIL_PASSWORD=null
+CORPUSPAROLE_ONTOLOGY_URL=http://corpusdelaparole.culture.fr/ontology/
+
CORPUSPAROLE_COCOON_RDF_BASE_URI=
CORPUSPAROLE_COCOON_OAIPMH_URL=
CORPUSPAROLE_SESAME_BASE_URL=http://172.16.1.5:8080/openrdf-sesame
@@ -57,5 +59,3 @@
HANDLE_TEST_DSA_KEY=""
HANDLE_TEST_DSA_PASSWORD=NULL
HANDLE_TEST_DSA_ADMIN_HANDLE=""
-
-
--- a/server/src/app/Http/Controllers/Api/DocumentController.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Http/Controllers/Api/DocumentController.php Thu Sep 22 15:42:12 2016 +0200
@@ -127,6 +127,8 @@
//for now, update contributors and subjects only
$doc->setContributors($document['contributors']);
$doc->setSubjects($document['subjects']);
+ $doc->addGeoInfo()->setRefLocs($document['reflocs']);
+ $doc->getGeoInfo()->commit();
$doc->setModified();
--- a/server/src/app/Libraries/RdfModel/RdfModelDelta.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Libraries/RdfModel/RdfModelDelta.php Thu Sep 22 15:42:12 2016 +0200
@@ -9,12 +9,15 @@
class RdfModelDelta {
public function __construct($uri) {
+ $this->uri = $uri;
$this->deletedGraph = new Graph($uri);
$this->addedGraph = new Graph($uri);
+ $this->deleteWhere = [];
}
private $deletedGraph;
private $addedGraph;
+ private $deleteWhere;
public function getDeletedGraph() {
return $this->deletedGraph;
@@ -24,4 +27,17 @@
return $this->addedGraph;
}
+ public function getDeleteWhere() {
+ return $this->deleteWhere;
+ }
+
+ public function addDeleteWhere(string $value) {
+ array_push($this->deleteWhere, $value);
+ return $this;
+ }
+
+ public function getUri() {
+ return $this->uri;
+ }
+
}
--- a/server/src/app/Libraries/RdfModel/RdfModelResource.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Libraries/RdfModel/RdfModelResource.php Thu Sep 22 15:42:12 2016 +0200
@@ -18,16 +18,27 @@
protected $currentDelta = null;
protected $uri = null;
+ protected function additionalDeltaLists() {
+ return [];
+ }
+
public function isDirty() {
- return !is_null($this->deltaList) && count($this->deltaList)>0;
+ return $this->deltaCount()>0;
}
public function deltaCount() {
- return is_null($this->deltaList)?0:count($this->deltaList);
+ $deltaList = $this->getDeltaList();
+ return is_null($deltaList)?0:count($deltaList);
}
public function getDeltaList() {
- return $this->deltaList;
+ $deltaList = is_null($this->deltaList)?[]:$this->deltaList;
+ $additionalDeltaLists = $this->additionalDeltaLists();
+ if(!empty($additionalDeltaLists)) {
+ array_unshift($additionalDeltaLists, $deltaList);
+ $deltaList = call_user_func_array('array_merge', $additionalDeltaLists);
+ }
+ return $deltaList;
}
public function getUri() {
@@ -35,7 +46,7 @@
}
public function getCurrentDelta() {
- return $this->getCurrentDelta;
+ return $this->currentDelta;
}
public function startDelta() {
--- a/server/src/app/Libraries/Sparql/SparqlClient.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Libraries/Sparql/SparqlClient.php Thu Sep 22 15:42:12 2016 +0200
@@ -130,15 +130,19 @@
public function deleteWhere($whereClauses, string $graphUri = null) {
- if(is_array($whereClause)) {
- $whereClause = implode(" .", $whereClause);
+ if(empty($whereClauses)) {
+ return;
}
+ if(is_array($whereClauses)) {
+ $whereClauses = implode(" .", $whereClauses);
+ }
+
+ $query = "DELETE { ?s ?p ?o } WHERE { $whereClauses }";
if($graphUri) {
- $whereClause = "GRAPH <$graphUri> { $whereClause }";
+ $query = "WITH <$graphUri> $query";
}
- $query = "DELETE WHERE { $whereClause }";
// doc : http://rdf4j.org/doc/4/articles/REST-API/transaction-operations.docbook?view
// cf. bug : https://openrdf.atlassian.net/browse/SES-2295
--- a/server/src/app/Models/Document.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Models/Document.php Thu Sep 22 15:42:12 2016 +0200
@@ -41,6 +41,13 @@
$this->geoInfo = false;
}
+ protected function additionalDeltaLists() {
+
+ $geoInfo = $this->getGeoInfo();
+ $geoInfoDeltas = is_null($geoInfo)?[]:$geoInfo->getDeltaList();
+ return empty($geoInfoDeltas)?[]:[$geoInfoDeltas,];
+ }
+
private function parseWebResources() {
@@ -208,19 +215,42 @@
}
/**
- *
+ * get the GeoInfoObject
+ * Ths returned object should be limited for read only activities.
+ * If it needs to be edited use the addGeoInfo method.
*/
public function getGeoInfo() {
if($this->geoInfo === false) {
$places = $this->getProvidedCHO()->all('<http://purl.org/dc/terms/spatial>');
$this->geoInfo = null;
if($places) {
- $this->geoInfo = new GeoResource($places[0]->getUri(), $this->graph);
+ $this->geoInfo = new GeoResource($places[0]->getUri(), $this->graph, $this->getProvidedCHO());
}
}
return $this->geoInfo;
}
+ public function addGeoInfo() {
+ $geoInfo = $this->getGeoInfo();
+ if(!is_null($geoInfo)) {
+ // if there already is a geo info, just return it.
+ $geoInfo->setReadOnly(false);
+ $geoInfo->setNeedDelete(true);
+ return $geoInfo;
+ }
+
+ $this->geoInfo = false;
+
+ $geoinfoNode = $this->getGraph()->newBNode("http://www.europeana.eu/schemas/edm/Place");
+ $this->getProvidedCHO()->addResource("http://purl.org/dc/terms/spatial", $geoinfoNode);
+
+ $this->geoInfo = new GeoResource($geoinfoNode->getUri(), $this->graph, $this->getProvidedCHO());
+ $this->geoInfo->setReadOnly(false);
+ $this->geoInfo->setNeedDelete(false);
+
+ return $this->geoInfo;
+ }
+
/**
* change subjecs list
*/
--- a/server/src/app/Models/DocumentResult.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Models/DocumentResult.php Thu Sep 22 15:42:12 2016 +0200
@@ -23,12 +23,14 @@
private $publishers = false;
private $duration = false;
private $durationMs = -1;
+ private $transcriptUrl = false;
protected function clearMemoizationCache() {
parent::clearMemoizationCache();
$this->publishers = false;
$this->duration = false;
- $this->$durationMs = -1;
+ $this->durationMs = -1;
+ $this->transcriptUrl = false;
}
@@ -66,6 +68,17 @@
return $this->durationMs;
}
+ public function getTranscriptUrl() {
+ if($this->transcriptUrl === false) {
+ try {
+ $this->transcriptUrl = $this->getProvidedCHO()->getLiteral("<".config('corpusparole.corpus_ontology_url').'transcript'.">");
+ } catch(\Exception $e) {
+ $this->transcriptUrl = null;
+ }
+ }
+ return is_null($this->transcriptUrl)?null:$this->transcriptUrl->getValue();
+ }
+
public function jsonSerialize() {
$res = parent::jsonSerialize();
@@ -73,7 +86,8 @@
if($this->graph) {
$res = array_merge($res, [
'publishers' => $this->getPublishersValue(),
- 'duration' => $this->getDurationValue()
+ 'duration' => $this->getDurationValue(),
+ 'transcript_url' => $this->getTranscriptUrl()
]);
}
return $res;
--- a/server/src/app/Models/GeoResource.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Models/GeoResource.php Thu Sep 22 15:42:12 2016 +0200
@@ -1,6 +1,7 @@
<?php
namespace CorpusParole\Models;
+use CorpusParole\Libraries\CorpusParoleException;
use CorpusParole\Libraries\RdfModel\RdfModelResource;
use CorpusParole\Libraries\Utils;
use JsonSerializable;
@@ -10,16 +11,36 @@
*/
class GeoResource extends RdfModelResource implements JsonSerializable {
- public function __construct($uri, $graph) {
+ public function __construct($uri, $graph, $providedCHO) {
parent::__construct($uri, $graph);
+ $this->providedCHO = $providedCHO;
+ $this->readOnly = true;
+ $this->changePending = false;
+ $this->needDelete = false;
}
+ private $providedCHO = null;
+ private $readOnly = true;
+ private $changePending = false;
+ private $needDelete = false;
+
private $refLocs = null;
private $notes = null;
+ private $latitude = false;
+ private $longitude = false;
+
+ public function getDeltaList() {
+ if($this->changePending) {
+ throw new CorpusParoleException('GetDeltaList called when changes are pending');
+ }
+ return parent::getDeltaList();
+ }
public function clearMemoizationCache() {
$this->refLocs = null;
$this->notes = null;
+ $this->latitude = false;
+ $this->longitude = false;
}
public function getRefLocs() {
@@ -30,6 +51,21 @@
return $this->refLocs;
}
+ public function setRefLocs($refLocs) {
+ if(!$this->changePending) {
+ throw new CorpusParoleException('Can call setRefLocs only when changes are pending');
+ }
+
+ $this->delete("<http://www.w3.org/2002/07/owl#sameAs>");
+
+ foreach($refLocs as $refLocUri) {
+ $this->addResource("http://www.w3.org/2002/07/owl#sameAs", $refLocUri);
+ }
+
+ $this->clearMemoizationCache();
+
+ }
+
public function getNotes() {
if(is_null($this->notes)) {
$this->notes = $this->all('<http://www.w3.org/2004/02/skos/core#note>');
@@ -37,6 +73,40 @@
return $this->notes;
}
+ public function getLatitude() {
+ if($this->latitude === false) {
+ try {
+ $this->latitude = $this->getLiteral('<http://www.w3.org/2003/01/geo/wgs84_pos#lat>');
+ } catch(\Exception $e) {
+ $this->latitude = null;
+ }
+ }
+ return $this->latitude;
+ }
+
+ public function getLatitudeValue() {
+ $lat = $this->getLatitude();
+ return is_null($lat)?null:$lat->getValue();
+ }
+
+ public function getLongitude() {
+ if($this->longitude === false) {
+ try {
+ $this->longitude = $this->getLiteral('<http://www.w3.org/2003/01/geo/wgs84_pos#long>');
+ } catch(\Exception $e) {
+ $this->longitude = null;
+ }
+ }
+ return $this->longitude;
+ }
+
+ public function getLongitudeValue() {
+ $long = $this->getLongitude();
+ return is_null($long)?null:$long->getValue();
+ }
+
+
+
public function jsonSerialize() {
$notes = array_map(
function($note) { return Utils::processLiteralResourceOrString($note); },
@@ -44,8 +114,65 @@
);
return [
'ref-locs' => $this->getRefLocs(),
- 'notes' => $notes
+ 'notes' => $notes,
+ 'latitude' => $this->getLatitudeValue(),
+ 'longitude' => $this->getLongitudeValue(),
];
}
+ public function setReadOnly($ro) {
+ if($this->readOnly and !$ro) {
+ $this->changePending = true;
+ }
+ $this->readOnly = $ro;
+ }
+
+ public function setNeedDelete($nd) {
+ $this->needDelete = $nd;
+ }
+
+ public function rollback() {
+ $this->changePending = false;
+ }
+
+ public function commit() {
+
+ // Do nothing if there is no change pending
+ if(!$this->changePending) {
+ return;
+ }
+
+ $delta = $this->startDelta();
+
+ //delete the previous blank node
+ if($this->needDelete) {
+ $delta->addDeleteWhere(
+ "?s ?p ?o. ".
+ "{ ".
+ " ?_ <http://purl.org/dc/terms/spatial> ?s. ".
+ "} ".
+ "UNION { ".
+ " ?s <http://purl.org/dc/terms/spatial> ?o ".
+ "}"
+ );
+ }
+
+ // add the node
+ $geoinfoNodeAdded = $delta->getAddedGraph()->newBNode("http://www.europeana.eu/schemas/edm/Place");
+ $delta->getAddedGraph()->add($this->providedCHO, "http://purl.org/dc/terms/spatial", $geoinfoNodeAdded);
+
+ foreach($this->propertyUris() as $prop) {
+ if($prop == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") {
+ continue;
+ }
+ foreach($this->all("<$prop>") as $propVal) {
+ $delta->getAddedGraph()->add($geoinfoNodeAdded, $prop, $propVal);
+ }
+ }
+
+ $this->changePending = false;
+
+ }
+
+
}
\ No newline at end of file
--- a/server/src/app/Repositories/RdfDocumentRepository.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/app/Repositories/RdfDocumentRepository.php Thu Sep 22 15:42:12 2016 +0200
@@ -24,8 +24,8 @@
*/
class RdfDocumentRepository implements DocumentRepository {
- const ALL_QUERIES = [
- "SELECT".
+ const BASE_DOC_QUERY
+ = "SELECT".
" ?uri".
" ?doc".
" ?title".
@@ -33,17 +33,18 @@
" ?modified".
" ?lang".
" (group_concat(distinct ?publisher;separator=\", \") as ?publishers) ".
- "WHERE {".
- "GRAPH ?uri { ?doc a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.".
+ " WHERE {".
+ " GRAPH ?uri { ?doc a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.".
" ?doc <http://purl.org/dc/elements/1.1/title> ?title.".
" OPTIONAL {?doc <http://purl.org/dc/elements/1.1/language> ?lang.} ".
" OPTIONAL {?doc <http://purl.org/dc/terms/issued> ?issued.} ".
" OPTIONAL {?doc <http://purl.org/dc/terms/modified> ?modified.} ".
" OPTIONAL {?doc <http://purl.org/dc/elements/1.1/publisher> ?publisher.} }".
- "} ".
- "GROUP BY ?uri ?doc ?title ?issued ?modified ?lang ".
- "ORDER BY ?uri",
+ " } ".
+ " GROUP BY ?uri ?doc ?title ?issued ?modified ?lang ".
+ " ORDER BY ?uri";
+ const ADDITIONAL_DOC_QUERIES = [
"SELECT".
" ?uri".
" ?doc".
@@ -54,10 +55,25 @@
" ?uri <http://www.europeana.eu/schemas/edm/isShownBy> ?s. ".
" ?uri <http://www.europeana.eu/schemas/edm/aggregatedCHO> ?doc. ".
" OPTIONAL {?s <http://purl.org/dc/terms/extent> ?ext.}".
- " }".
+ " }. ".
+ " %s".
"} ".
- "GROUP BY ?uri ?doc ".
- "ORDER BY ?uri"
+ "GROUP BY ?uri ?doc",
+
+ "SELECT".
+ " ?uri".
+ " ?doc".
+ " (sample(distinct str(?s)) as ?transcript_url) ".
+ "WHERE {".
+ " GRAPH ?uri {".
+ " ?s a <http://www.europeana.eu/schemas/edm/WebResource>. ".
+ " ?uri <http://www.europeana.eu/schemas/edm/aggregatedCHO> ?doc. ".
+ " OPTIONAL {?s <http://purl.org/dc/elements/1.1/format> ?f.} ".
+ " }. ".
+ " FILTER(str(?f) IN ( \"application/xml\", \"application/pdf\" )). ".
+ " %s".
+ "} ".
+ "GROUP BY ?uri ?doc"
];
private $sparqlClient;
@@ -73,6 +89,11 @@
}
private function getResGraph($doc) {
+
+ if(empty((array)$doc)) {
+ return null;
+ }
+
$newGraph = new Graph($doc->uri->getUri());
$newGraph->add($doc->uri, "rdf:type", $newGraph->resource("http://www.openarchives.org/ore/terms/Aggregation"));
$newGraph->add($doc->uri, "http://www.europeana.eu/schemas/edm/aggregatedCHO", $doc->doc);
@@ -95,17 +116,51 @@
if(isset($doc->extent)) {
$newGraph->add($doc->doc, "http://purl.org/dc/terms/extent", $doc->extent);
}
+ if(isset($doc->transcript_url)) {
+ $newGraph->add($doc->doc, config('corpusparole.corpus_ontology_url').'transcript', $doc->transcript_url);
+ }
return $newGraph;
}
- private function queryDocs($queries) {
+ private function queryDocs($offset=null, $limit=null) {
$resDocs = [];
+ $limitsClauses = [];
+ $limitsClausesStr = "";
- foreach($queries as $query) {
- $docs = $this->sparqlClient->query($query);
+ if(!is_null($offset)) {
+ array_push($limitsClauses, "OFFSET $offset");
+ }
+ if(!is_null($limit)) {
+ array_push($limitsClauses, "LIMIT $limit");
+ }
+ if(!empty($limitsClauses)) {
+ $limitsClausesStr = "\n" . join(" ", $limitsClauses);
+ }
+
+ $docs = $this->sparqlClient->query(self::BASE_DOC_QUERY.$limitsClausesStr);
+ foreach($docs as $doc) {
+ $graph = $this->getResGraph($doc);
+ if(is_null($graph)) {
+ continue;
+ }
+ $uri = $doc->uri->getUri();
+ $resDocs[$uri] = $graph;
+ }
+
+ if(count($resDocs) == 0) {
+ return [];
+ }
+
+ $filterUris = "FILTER(?uri in (<".join(">, <" , array_keys($resDocs)).">)) ";
+
+ foreach(self::ADDITIONAL_DOC_QUERIES as $query) {
+ $docs = $this->sparqlClient->query(sprintf($query, $filterUris));
foreach($docs as $doc) {
$graph = $this->getResGraph($doc);
+ if(is_null($graph)) {
+ continue;
+ }
$uri = $doc->uri->getUri();
if(array_key_exists($uri, $resDocs)) {
@@ -113,7 +168,6 @@
} else {
$resDocs[$uri] = $graph;
}
-
}
}
@@ -121,7 +175,7 @@
}
public function all() {
- return $this->queryDocs(self::ALL_QUERIES);
+ return $this->queryDocs();
}
public function get($id, bool $short=false) {
@@ -159,6 +213,7 @@
try {
foreach($doc->getDeltaList() as $delta) {
+ $this->sparqlClient->deleteWhere($delta->getDeleteWhere(), $delta->getUri());
$this->sparqlClient->delete($delta->getDeletedGraph());
$this->sparqlClient->add($delta->getAddedGraph());
}
@@ -207,7 +262,7 @@
$offset = max(0,($page - 1) * $perPage);
- $results = $this->queryDocs(array_map(function($q) use ($offset, $perPage) { return $q . "\nOFFSET $offset LIMIT $perPage"; }, self::ALL_QUERIES));
+ $results = $this->queryDocs($offset, $perPage);
return new LengthAwarePaginator($results, $total, $perPage, $page, [
'path' => Paginator::resolveCurrentPath(),
--- a/server/src/config/corpusparole.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/config/corpusparole.php Thu Sep 22 15:42:12 2016 +0200
@@ -13,7 +13,7 @@
'sesame_update_url' => $sesameBaseUrl.'repositories/'.env('CORPUSPAROLE_SESAME_REPOSITORY').'/statements',
'sesame_query_url_raw' => $sesameBaseUrl.'repositories/'.env('CORPUSPAROLE_SESAME_REPOSITORY_RAW'),
'sesame_update_url_raw' => $sesameBaseUrl.'repositories/'.env('CORPUSPAROLE_SESAME_REPOSITORY_RAW').'/statements',
-
+ 'corpus_ontology_url' => env('CORPUSPAROLE_ONTOLOGY_URL', 'http://corpusdelaparole.culture.fr/ontology/'),
'cocoon_rdf_base_uri' => env('CORPUSPAROLE_COCOON_RDF_BASE_URI'),
'cocoon_oaipmh_url' => env('CORPUSPAROLE_COCOON_OAIPMH_URL'),
--- a/server/src/tests/Models/DocumentTest.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/tests/Models/DocumentTest.php Thu Sep 22 15:42:12 2016 +0200
@@ -3,122 +3,53 @@
use CorpusParole\Models\Document;
use CorpusParole\Libraries\CocoonUtils;
+use EasyRdf\RdfNamespace;
+
/**
*
*/
class DocumentTest extends TestCase {
- const TEST_DOC = <<<EOT
- @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
- @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
- @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
-
- <%1\$scrdo-CFPP2000_35_SOUND> a <http://www.openarchives.org/ore/terms/Aggregation> ;
- <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> ;
- <http://www.europeana.eu/schemas/edm/dataProvider> "Langage et langues : description, théorisation, transmission" ;
- <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> ;
- <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND> ;
- <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> ;
- <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
- <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-sa/4.0/> .
+ const TEST_INPUT_DOCS = [
+ 'TEST' => __DIR__.'/files/DocumentTest/test_doc.ttl',
+ 'TEST_NO_GEOINFO' => __DIR__.'/files/DocumentTest/test_no_geoinfo.ttl',
+ ];
- <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/93752300> , "Tanguy, Noalig" , "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
- <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
- <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
- <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
- <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
- <http://purl.org/dc/elements/1.1/subject> <http://ark.bnf.fr/ark:/12148/cb13318415c> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://lexvo.org/id/iso639-3/fra> , <http://ark.bnf.fr/ark:/12148/cb133188907> , <http://ark.bnf.fr/ark:/12148/cb11932762f> , "general_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133183660> , "text_and_corpus_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "Français"@fr , <http://ark.bnf.fr/ark:/12148/cb122368540> , "phonology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "semantics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "sociolinguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "syntax"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "typology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb119418302> , <http://ark.bnf.fr/ark:/12148/cb135540729> , "discourse_analysis"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "historical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "language_documentation"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133192210> , <http://ark.bnf.fr/ark:/12148/cb119377452> , <http://ark.bnf.fr/ark:/12148/cb13320451h> , <http://ark.bnf.fr/ark:/12148/cb13318422n> , <http://ark.bnf.fr/ark:/12148/cb11975823c> , "mathematical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
- <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
- <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , <http://purl.org/dc/dcmitype/Text> , "narrative"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "report"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "unintelligible_speech"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
- <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/spatial> [
- a <http://www.europeana.eu/schemas/edm/Place> ;
- owl:sameAs <http://sws.geonames.org/6618626/> ;
- <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
- ];
- <http://www.europeana.eu/schemas/edm/isGatheredInto> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
- <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/93752300> ;
- <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/93752300> ;
- <http://www.language-archives.org/OLAC/1.1/transcriber> "Tanguy, Noalig" ;
- <http://purl.org/dc/elements/1.1/coverage> "Quartier concerné : 3e"@fr ;
- <http://www.language-archives.org/OLAC/1.1/responder> "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
- <http://purl.org/dc/elements/1.1/relation> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_31_SOUND> .
-
-
- <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "application/xml"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/issued> "2013-11-04T22:20:07+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://purl.org/dc/terms/conformsTo> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_transcriber> .
-
- <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> .
-
- <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
-
- <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
-EOT;
-
+ private $inputGraphes = [];
public function setUp() {
+ parent::setup();
- parent::setup();
- $this->graph = new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", sprintf(DocumentTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme')));
+ foreach(self::TEST_INPUT_DOCS as $key => $inputDoc) {
+ $this->inputGraphes[$key] = new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", sprintf(file_get_contents($inputDoc), config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme')));
+ }
+
}
public function testConstructor() {
- $this->assertNotNull($this->graph, 'Graph shoud not be null');
+ $this->assertNotNull($this->inputGraphes['TEST'], 'Graph shoud not be null');
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertEquals(config('corpusparole.corpus_id_scheme').'crdo-CFPP2000_35_SOUNDid',$doc->getId(),'Must have the correct id');
}
public function testTitle() {
- $this->assertNotNull($this->graph, 'Graph shoud not be null');
+ $this->assertNotNull($this->inputGraphes['TEST'], 'Graph shoud not be null');
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertEquals("Entretien de Ozgur Kiliç 2",$doc->getTitle(),'Must have correct title');
$this->assertInstanceOf(EasyRdf\Literal::class, $doc->getTitle(), "Title must be a literal");
$this->assertEquals('fr', $doc->getTitle()->getLang(), "Language title must be fr");
}
+
public function testModified() {
- $this->assertNotNull($this->graph, 'Graph shoud not be null');
+ $this->assertNotNull($this->inputGraphes['TEST'], 'Graph shoud not be null');
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertInstanceOf(EasyRdf\Literal::class, $doc->getModified(), "Modified must be a literal");
$this->assertEquals("http://purl.org/dc/terms/W3CDTF", $doc->getModified()->getDatatypeURI(), "type must be http://purl.org/dc/terms/W3CDTF");
$this->assertEquals("2013-10-12T14:35:57+02:00", $doc->getModified(), "modified must be 2013-10-12T14:35:57+02:00");
@@ -127,7 +58,7 @@
public function testSetModified() {
$currentTime = gmdate(DateTime::ATOM);
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$doc->setModified($currentTime);
$this->assertInstanceOf(EasyRdf\Literal::class, $doc->getModified(), "Modified must be a literal");
$this->assertEquals("http://purl.org/dc/terms/W3CDTF", $doc->getModified()->getDatatypeURI(), "type must be http://purl.org/dc/terms/W3CDTF");
@@ -135,7 +66,7 @@
}
public function testSetModifiedNull() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$doc->setModified();
$this->assertInstanceOf(EasyRdf\Literal::class, $doc->getModified(), "Modified must be a literal");
$this->assertEquals("http://purl.org/dc/terms/W3CDTF", $doc->getModified()->getDatatypeURI(), "type must be http://purl.org/dc/terms/W3CDTF");
@@ -146,7 +77,7 @@
public function testPublisher() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertCount(1, $doc->getPublishers(), 'Publisher is an array of size 1');
$this->assertInstanceOf('EasyRdf\Resource', $doc->getPublishers()[0], 'publisher is a resource');
@@ -154,7 +85,7 @@
}
public function testMediaArray() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertCount(3, $doc->getMediaArray(), "Media array must be of size 3");
//print_r($doc->getMediaArray());
@@ -191,7 +122,7 @@
}
public function testGetTypes() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertCount(8, $doc->getTypes(), "types array must be of size 5");
@@ -207,7 +138,7 @@
}
public function testGetOtherTypes() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertCount(5, $doc->getOtherTypes(), "types array must be of size 5");
@@ -223,7 +154,7 @@
}
public function testGetDiscourseTypes() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3");
@@ -234,7 +165,7 @@
}
public function testCloneDocument() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$doc2 = clone $doc;
@@ -245,8 +176,8 @@
}
public function testIsIsomorphic() {
- $doc1 = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
- $doc2 = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", sprintf(DocumentTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme'))));
+ $doc1 = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
+ $doc2 = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", sprintf(file_get_contents(DocumentTest::TEST_INPUT_DOCS['TEST']) , config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme'))));
$this->assertTrue($doc1->isIsomorphic($doc2),"document must be isomorphic");
@@ -259,7 +190,7 @@
$newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic'];
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3");
$doc->updateDiscourseTypes($newDiscourseTypes);
@@ -277,7 +208,7 @@
$newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic'];
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$doc->updateDiscourseTypes($newDiscourseTypes);
@@ -305,7 +236,7 @@
}
public function testUpdateTitle() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$oldTitle = $doc->getTitle();
@@ -333,16 +264,16 @@
$newDiscourseTypes = ['oratory','dialogue','narrative'];
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$doc->updateDiscourseTypes($newDiscourseTypes);
- $doc2 = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", sprintf(DocumentTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme'))));
+ $doc2 = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", sprintf(file_get_contents(DocumentTest::TEST_INPUT_DOCS['TEST']), config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme'))));
$this->assertFalse($doc->isIsomorphic($doc2),"document must not be isomorphic after adding discourse type");
}
public function testGetContributors() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$contributors = $doc->getContributors();
@@ -358,7 +289,7 @@
}
public function testSetContributors() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$contributors = $doc->getContributors();
@@ -435,7 +366,7 @@
}
public function testGetSubjects() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$subjects = $doc->getSubjects();
@@ -453,7 +384,7 @@
}
public function testSetSubjects() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$newSubjects = [
"http://ark.bnf.fr/ark:/12148/cb13318415c",
@@ -491,7 +422,7 @@
//TODO: test null transcript + null media array
public function testJsonSerialize() {
- $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
$json = $doc->jsonSerialize();
@@ -506,5 +437,68 @@
}
+ public function testAddGeoInfo() {
+
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST_NO_GEOINFO']);
+ //$doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
+
+ $res = $doc->addGeoInfo();
+ $res->commit();
+
+ $this->assertNotNull($res, "A new georesource object must have been created");
+
+ $this->assertInstanceOf('CorpusParole\Models\GeoResource', $res, "the object created must be a geo resource");
+
+ $allSpatials = $doc->getProvidedCHO()->allResources("<http://purl.org/dc/terms/spatial>");
+
+ $this->assertCount(1, $allSpatials, "Must have only one spatial node");
+
+ $spatial = $allSpatials[0];
+
+ $this->assertTrue($spatial->isBNode(), "Spatial node must be a blank node");
+ $this->assertEquals($spatial->typeAsResource(), "http://www.europeana.eu/schemas/edm/Place", "type must be a http://www.europeana.eu/schemas/edm/Place");
+
+ $this->assertTrue($doc->isDirty(), "Document must be dirty");
+ $this->assertEquals(1, $doc->deltaCount(), "Must have only one delta.");
+
+ $this->assertNotNull($res->getCurrentDelta(), "CurrentDelta is not null");
+ $this->assertTrue($res->getCurrentDelta()->getDeletedGraph()->isEmpty(), "deleted graph must be empty");
+ $this->assertEmpty($res->getCurrentDelta()->getDeleteWhere(), "Delete where must be empty");
+ $this->assertNotNull($res->getCurrentDelta()->getAddedGraph(), "Added graph is not null");
+ $this->assertEquals(2, $res->getCurrentDelta()->getAddedGraph()->countTriples(), "Added graph must have 2 triples");
+
+ }
+
+
+ public function testAddGeoInfoNotEmpty() {
+
+ $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
+
+ $res = $doc->addGeoInfo();
+ $res->commit();
+
+ $this->assertNotNull($res, "A new georesource object must have been created");
+
+ $this->assertInstanceOf('CorpusParole\Models\GeoResource', $res, "the object created must be a geo resource");
+
+ $allSpatials = $doc->getProvidedCHO()->allResources("<http://purl.org/dc/terms/spatial>");
+
+ $this->assertCount(1, $allSpatials, "Must have only one spatial node");
+
+ $spatial = $allSpatials[0];
+
+ $this->assertTrue($spatial->isBNode(), "Spatial node must be a blank node");
+ $this->assertEquals($spatial->typeAsResource(), "http://www.europeana.eu/schemas/edm/Place", "type must be a http://www.europeana.eu/schemas/edm/Place");
+
+ $this->assertTrue($doc->isDirty(), "Document must not be dirty");
+ $this->assertEquals(1, $doc->deltaCount(), "Must have only one delta.");
+
+ $this->assertNotNull($res->getCurrentDelta(), "CurrentDelta is not null");
+ $this->assertTrue($res->getCurrentDelta()->getDeletedGraph()->isEmpty(), "deleted graph must be empty");
+ $this->assertCount(1, $res->getCurrentDelta()->getDeleteWhere(), "Delete where must have one element");
+ $this->assertNotNull($res->getCurrentDelta()->getAddedGraph(), "Added graph is not null");
+ $this->assertEquals(9, $res->getCurrentDelta()->getAddedGraph()->countTriples(), "Added graph must have 7 triples");
+ }
+
}
--- a/server/src/tests/Models/GeoResourceTest.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/tests/Models/GeoResourceTest.php Thu Sep 22 15:42:12 2016 +0200
@@ -1,6 +1,7 @@
<?php
use CorpusParole\Models\GeoResource;
+use CorpusParole\Models\Document;
use CorpusParole\Libraries\CocoonUtils;
/**
@@ -9,140 +10,9 @@
class GeoResourceTest extends TestCase {
const TEST_DOCS = [
- "LOC1" => <<<EOT
- @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
- @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
- @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
-
- <%1\$scrdo-CFPP2000_35_SOUND> a <http://www.openarchives.org/ore/terms/Aggregation> ;
- <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> ;
- <http://www.europeana.eu/schemas/edm/dataProvider> "Langage et langues : description, théorisation, transmission" ;
- <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> ;
- <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND> ;
- <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> ;
- <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
- <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-sa/4.0/> .
-
- <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/93752300> , "Tanguy, Noalig" , "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
- <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
- <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
- <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
- <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
- <http://purl.org/dc/elements/1.1/subject> <http://ark.bnf.fr/ark:/12148/cb13318415c> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://lexvo.org/id/iso639-3/fra> , <http://ark.bnf.fr/ark:/12148/cb133188907> , <http://ark.bnf.fr/ark:/12148/cb11932762f> , "general_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133183660> , "text_and_corpus_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "Français"@fr , <http://ark.bnf.fr/ark:/12148/cb122368540> , "phonology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "semantics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "sociolinguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "syntax"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "typology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb119418302> , <http://ark.bnf.fr/ark:/12148/cb135540729> , "discourse_analysis"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "historical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "language_documentation"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133192210> , <http://ark.bnf.fr/ark:/12148/cb119377452> , <http://ark.bnf.fr/ark:/12148/cb13320451h> , <http://ark.bnf.fr/ark:/12148/cb13318422n> , <http://ark.bnf.fr/ark:/12148/cb11975823c> , "mathematical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
- <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
- <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , <http://purl.org/dc/dcmitype/Text> , "narrative"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "report"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "unintelligible_speech"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
- <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/spatial> [
- a <http://www.europeana.eu/schemas/edm/Place> ;
- owl:sameAs <http://sws.geonames.org/6618626/> ;
- <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
- ];
- <http://www.europeana.eu/schemas/edm/isGatheredInto> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
- <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/93752300> ;
- <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/93752300> ;
- <http://www.language-archives.org/OLAC/1.1/transcriber> "Tanguy, Noalig" ;
- <http://purl.org/dc/elements/1.1/coverage> "Quartier concerné : 3e"@fr ;
- <http://www.language-archives.org/OLAC/1.1/responder> "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
- <http://purl.org/dc/elements/1.1/relation> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_31_SOUND> .
-
-
- <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "application/xml"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/issued> "2013-11-04T22:20:07+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://purl.org/dc/terms/conformsTo> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_transcriber> .
-
- <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> .
-
- <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
-
- <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
-EOT
- ,
- "LOC2" => <<<EOT
- @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
- @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
- @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
-
- <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
- <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
- <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
- <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
- <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
- <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/spatial> [
- a <http://www.europeana.eu/schemas/edm/Place> ;
- <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
- ] .
-EOT
- ,
- "LOC3" => <<<EOT
- @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
- @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
- @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
-
- <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/extent> "PT48M26S" ;
- <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
- <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
- <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
- <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
- <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
- <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
- <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/spatial> [
- a <http://www.europeana.eu/schemas/edm/Place> ;
- owl:sameAs <http://sws.geonames.org/6618626/> ;
- owl:sameAs <http://fr.dbpedia.org/resource/Gramazie> ;
- <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
- ] .
-EOT
+ "LOC1" => __DIR__.'/files/GeoResourceTest/loc1.ttl',
+ "LOC2" => __DIR__.'/files/GeoResourceTest/loc2.ttl',
+ "LOC3" => __DIR__.'/files/GeoResourceTest/loc3.ttl',
];
public function setUp() {
@@ -152,18 +22,27 @@
$this->graphUrl = sprintf("%1\$scrdo-CFPP2000_35_SOUND", config('corpusparole.corpus_doc_id_base_uri'));
foreach(self::TEST_DOCS as $k => $ttl) {
- $this->graphs[$k] = new EasyRdf\Graph($this->graphUrl, sprintf($ttl, config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme')));
+ $this->graphs[$k] = new EasyRdf\Graph($this->graphUrl, sprintf(file_get_contents($ttl), config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme')));
}
}
public function getGeoResource($key) {
$graph = $this->graphs[$key];
+ $providedCHO = $graph->get("<".config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND>", "<http://www.europeana.eu/schemas/edm/aggregatedCHO>");
$places = $graph->allOfType("<http://www.europeana.eu/schemas/edm/Place>");
assert(count($places)>0);
$place = $places[0];
- return new GeoResource($place->getUri(), $graph);
+ return new GeoResource($place->getUri(), $graph, $providedCHO);
+
+ }
+
+ public function getGeoResourceEdit($key) {
+ $graph = $this->graphs[$key];
+ $doc = new Document($this->graphUrl, $graph);
+
+ return $doc->addGeoInfo();
}
@@ -218,13 +97,32 @@
}
+ public function testLatitude() {
+
+ $geoInfo = $this->getGeoResource("LOC1");
+
+ $this->assertEquals(48.73194, $geoInfo->getLatitude()->getValue(),'Must have correct latitude');
+ $this->assertInstanceOf(EasyRdf\Literal::class, $geoInfo->getLatitude(), "Latitude must be a literal");
+ $this->assertEquals('http://www.w3.org/2001/XMLSchema#float', $geoInfo->getLatitude()->getDatatypeUri(), "Datatype title must be 'http://www.w3.org/2001/XMLSchema#float'");
+ }
+
+ public function testLongitude() {
+
+ $geoInfo = $this->getGeoResource("LOC1");
+
+ $this->assertEquals(7.70833, $geoInfo->getLongitude()->getValue(),'Must have correct longitude');
+ $this->assertInstanceOf(EasyRdf\Literal::class, $geoInfo->getLongitude(), "Longitude must be a literal");
+ $this->assertEquals('http://www.w3.org/2001/XMLSchema#float', $geoInfo->getLongitude()->getDatatypeUri(), "Datatype title must be 'http://www.w3.org/2001/XMLSchema#float'");
+ }
+
+
public function testJsonSerialize() {
$geoResource = $this->getGeoResource("LOC1");
$json = $geoResource->jsonSerialize();
- $this->assertEquals(["ref-locs", "notes"], array_keys($json));
+ $this->assertEquals(["ref-locs", "notes", "latitude", "longitude"], array_keys($json));
$this->assertEquals(["http://sws.geonames.org/6618626/"], $json['ref-locs']);
$notes = $json['notes'];
@@ -248,10 +146,50 @@
$json = $geoResource->jsonSerialize();
- $this->assertEquals(["ref-locs", "notes"], array_keys($json));
+ $this->assertEquals(["ref-locs", "notes", "latitude", "longitude"], array_keys($json));
$this->assertEquals(["http://sws.geonames.org/6618626/", "http://fr.dbpedia.org/resource/Gramazie"], $json['ref-locs']);
}
+ public function testSetRefLocs() {
+
+ $geoResource = $this->getGeoResourceEdit("LOC1");
+
+
+
+ $oldRefLocs = $geoResource->getRefLocs();
+ sort($oldRefLocs);
+
+ $newRefLocs = [ 'http://sws.geonames.org/2643743/' ];
+
+ $geoResource->setRefLocs($newRefLocs);
+
+ $refLoc = $geoResource->getRefLocs();
+
+ $this->assertEquals(['http://sws.geonames.org/2643743/'], $refLoc);
+
+ $geoResource->commit();
+
+ $deltaList = $geoResource->getDeltaList();
+
+ $this->assertNotNull($deltaList);
+ $this->assertCount(1, $deltaList, "Must have one delta");
+
+
+ $delta = $deltaList[0];
+
+ $this->assertTrue($delta->getDeletedGraph()->isEmpty(), "deleted graph must be empty");
+ $this->assertCount(1, $delta->getDeleteWhere(), "Delete where must have one element");
+ $this->assertNotNull($delta->getAddedGraph(), "Added graph is not null");
+ $this->assertEquals(9, $delta->getAddedGraph()->countTriples(), "Added graph must have 7 triples");
+ $places = $delta->getAddedGraph()->allOfType("http://www.europeana.eu/schemas/edm/Place");
+ $this->assertCount(1, $places);
+ $place = $places[0];
+ $sames = $places[0]->all('<http://www.w3.org/2002/07/owl#sameAs>');
+ $this->assertCount(1, $sames);
+ $this->assertEquals('http://sws.geonames.org/2643743/', $sames[0]->getUri());
+
+ }
+
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Models/files/DocumentTest/test_doc.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,80 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+<%1$scrdo-CFPP2000_35_SOUND> a <http://www.openarchives.org/ore/terms/Aggregation> ;
+ <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> ;
+ <http://www.europeana.eu/schemas/edm/dataProvider> "Langage et langues : description, théorisation, transmission" ;
+ <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> ;
+ <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND> ;
+ <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> ;
+ <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
+ <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-sa/4.0/> .
+
+<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/93752300> , "Tanguy, Noalig" , "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
+ <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
+ <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
+ <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
+ <http://purl.org/dc/elements/1.1/subject> <http://ark.bnf.fr/ark:/12148/cb13318415c> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://lexvo.org/id/iso639-3/fra> , <http://ark.bnf.fr/ark:/12148/cb133188907> , <http://ark.bnf.fr/ark:/12148/cb11932762f> , "general_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133183660> , "text_and_corpus_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "Français"@fr , <http://ark.bnf.fr/ark:/12148/cb122368540> , "phonology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "semantics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "sociolinguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "syntax"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "typology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb119418302> , <http://ark.bnf.fr/ark:/12148/cb135540729> , "discourse_analysis"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "historical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "language_documentation"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133192210> , <http://ark.bnf.fr/ark:/12148/cb119377452> , <http://ark.bnf.fr/ark:/12148/cb13320451h> , <http://ark.bnf.fr/ark:/12148/cb13318422n> , <http://ark.bnf.fr/ark:/12148/cb11975823c> , "mathematical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
+ <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , <http://purl.org/dc/dcmitype/Text> , "narrative"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "report"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "unintelligible_speech"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
+ <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/spatial> [
+ a <http://www.europeana.eu/schemas/edm/Place> ;
+ owl:sameAs <http://sws.geonames.org/6618626/> ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "48.73194"^^xsd:float;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#long> "7.70833"^^xsd:float;
+ <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
+ ];
+ <http://www.europeana.eu/schemas/edm/isGatheredInto> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/93752300> ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/93752300> ;
+ <http://www.language-archives.org/OLAC/1.1/transcriber> "Tanguy, Noalig" ;
+ <http://purl.org/dc/elements/1.1/coverage> "Quartier concerné : 3e"@fr ;
+ <http://www.language-archives.org/OLAC/1.1/responder> "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
+ <http://purl.org/dc/elements/1.1/relation> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_31_SOUND> .
+
+
+<http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "application/xml"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/issued> "2013-11-04T22:20:07+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/terms/conformsTo> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_transcriber> .
+
+<http://cocoon.huma-num.fr/data/archi/masters/372593.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> .
+
+<http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
+
+<http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Models/files/DocumentTest/test_no_geoinfo.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,73 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+<%1$scrdo-CFPP2000_35_SOUND> a <http://www.openarchives.org/ore/terms/Aggregation> ;
+ <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> ;
+ <http://www.europeana.eu/schemas/edm/dataProvider> "Langage et langues : description, théorisation, transmission" ;
+ <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> ;
+ <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND> ;
+ <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> ;
+ <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
+ <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-sa/4.0/> .
+
+<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/93752300> , "Tanguy, Noalig" , "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
+ <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
+ <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
+ <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
+ <http://purl.org/dc/elements/1.1/subject> <http://ark.bnf.fr/ark:/12148/cb13318415c> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://lexvo.org/id/iso639-3/fra> , <http://ark.bnf.fr/ark:/12148/cb133188907> , <http://ark.bnf.fr/ark:/12148/cb11932762f> , "general_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133183660> , "text_and_corpus_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "Français"@fr , <http://ark.bnf.fr/ark:/12148/cb122368540> , "phonology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "semantics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "sociolinguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "syntax"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "typology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb119418302> , <http://ark.bnf.fr/ark:/12148/cb135540729> , "discourse_analysis"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "historical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "language_documentation"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133192210> , <http://ark.bnf.fr/ark:/12148/cb119377452> , <http://ark.bnf.fr/ark:/12148/cb13320451h> , <http://ark.bnf.fr/ark:/12148/cb13318422n> , <http://ark.bnf.fr/ark:/12148/cb11975823c> , "mathematical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
+ <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , <http://purl.org/dc/dcmitype/Text> , "narrative"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "report"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "unintelligible_speech"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
+ <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://www.europeana.eu/schemas/edm/isGatheredInto> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/93752300> ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/93752300> ;
+ <http://www.language-archives.org/OLAC/1.1/transcriber> "Tanguy, Noalig" ;
+ <http://purl.org/dc/elements/1.1/coverage> "Quartier concerné : 3e"@fr ;
+ <http://www.language-archives.org/OLAC/1.1/responder> "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
+ <http://purl.org/dc/elements/1.1/relation> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_31_SOUND> .
+
+
+<http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "application/xml"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/issued> "2013-11-04T22:20:07+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/terms/conformsTo> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_transcriber> .
+
+<http://cocoon.huma-num.fr/data/archi/masters/372593.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> .
+
+<http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
+
+<http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Models/files/GeoResourceTest/loc1.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,80 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+<%1$scrdo-CFPP2000_35_SOUND> a <http://www.openarchives.org/ore/terms/Aggregation> ;
+ <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> ;
+ <http://www.europeana.eu/schemas/edm/dataProvider> "Langage et langues : description, théorisation, transmission" ;
+ <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> , <http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> ;
+ <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-CFPP2000_35_SOUND> ;
+ <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> ;
+ <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
+ <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-sa/4.0/> .
+
+<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/93752300> , "Tanguy, Noalig" , "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
+ <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
+ <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
+ <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
+ <http://purl.org/dc/elements/1.1/subject> <http://ark.bnf.fr/ark:/12148/cb13318415c> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://lexvo.org/id/iso639-3/fra> , <http://ark.bnf.fr/ark:/12148/cb133188907> , <http://ark.bnf.fr/ark:/12148/cb11932762f> , "general_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133183660> , "text_and_corpus_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "Français"@fr , <http://ark.bnf.fr/ark:/12148/cb122368540> , "phonology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "semantics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "sociolinguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "syntax"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "typology"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb119418302> , <http://ark.bnf.fr/ark:/12148/cb135540729> , "discourse_analysis"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "historical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "language_documentation"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , <http://ark.bnf.fr/ark:/12148/cb133192210> , <http://ark.bnf.fr/ark:/12148/cb119377452> , <http://ark.bnf.fr/ark:/12148/cb13320451h> , <http://ark.bnf.fr/ark:/12148/cb13318422n> , <http://ark.bnf.fr/ark:/12148/cb11975823c> , "mathematical_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
+ <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> , <http://purl.org/dc/dcmitype/Text> , "narrative"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "report"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "unintelligible_speech"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> ;
+ <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/spatial> [
+ a <http://www.europeana.eu/schemas/edm/Place> ;
+ owl:sameAs <http://sws.geonames.org/6618626/> ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "48.73194"^^xsd:float;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#long> "7.70833"^^xsd:float;
+ <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
+ ];
+ <http://www.europeana.eu/schemas/edm/isGatheredInto> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_CFPP2000> ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/93752300> ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/93752300> ;
+ <http://www.language-archives.org/OLAC/1.1/transcriber> "Tanguy, Noalig" ;
+ <http://purl.org/dc/elements/1.1/coverage> "Quartier concerné : 3e"@fr ;
+ <http://www.language-archives.org/OLAC/1.1/responder> "Chevrier, Michel" , "Kiliç, Ozgur" , "Salvegas, Etienne" , "du-Breuil-de-Pont-en-Auge, Augustin" , "du-Breuil-de-Pont-en-Auge, Benoît" ;
+ <http://purl.org/dc/elements/1.1/relation> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-CFPP2000_31_SOUND> .
+
+
+<http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "application/xml"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/issued> "2013-11-04T22:20:07+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/terms/conformsTo> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_transcriber> .
+
+<http://cocoon.huma-num.fr/data/archi/masters/372593.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> .
+
+<http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
+
+<http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/archi/masters/372593.wav> .
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Models/files/GeoResourceTest/loc2.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,23 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+<%1$scrdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
+ <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
+ <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
+ <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
+ <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/spatial> [
+ a <http://www.europeana.eu/schemas/edm/Place> ;
+ <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
+ ] .
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Models/files/GeoResourceTest/loc3.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,27 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+<%1$scrdo-CFPP2000_35_SOUND> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/created> "2010-11-17"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/extent> "PT48M26S" ;
+ <http://purl.org/dc/terms/issued> "2013-10-12T14:35:57+02:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-sa/3.0/> ;
+ <http://purl.org/dc/elements/1.1/description> "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr , "Quartier(s) concerné(s) : Paris 3e, et 20e (pour l'âge adulte); Anonymisation : Noalig TANGUY;"@fr ;
+ <http://purl.org/dc/elements/1.1/identifier> "ark:/87895/1.17-375004" , "%2\$scrdo-CFPP2000_35_SOUNDid" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35" , "Cote producteur: [03-01] Ozgur_Kilic_H_32_alii_3e"@fr , "ark:/87895/1.17-372593" , "oai:crdo.vjf.cnrs.fr:crdo-CFPP2000_35_SOUND" ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/fra> ;
+ <http://purl.org/dc/elements/1.1/publisher> <http://viaf.org/viaf/142432638>;
+ <http://purl.org/dc/elements/1.1/title> "Entretien de Ozgur Kiliç 2"@fr ;
+ <http://purl.org/dc/terms/available> "2013-10-12"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/spatial> [
+ a <http://www.europeana.eu/schemas/edm/Place> ;
+ owl:sameAs <http://sws.geonames.org/6618626/> ;
+ owl:sameAs <http://fr.dbpedia.org/resource/Gramazie> ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "48.73194"^^xsd:float;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#long> "7.70833"^^xsd:float;
+ <http://www.w3.org/2004/02/skos/core#note> "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Île-de-France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr , "Domicile de Ozgur Kiliç"@fr , "France, Île-de-France, Paris 20"@fr
+ ] .
--- a/server/src/tests/Repositories/DocumentRepositoryIntegrationTest.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/tests/Repositories/DocumentRepositoryIntegrationTest.php Thu Sep 22 15:42:12 2016 +0200
@@ -15,87 +15,10 @@
class DocumentRepositoryIntegrationTest extends TestCase {
- const REPO_CREATION_TTL = <<<EOT
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
- @prefix rep: <http://www.openrdf.org/config/repository#>.
- @prefix sr: <http://www.openrdf.org/config/repository/sail#>.
- @prefix sail: <http://www.openrdf.org/config/sail#>.
- @prefix ms: <http://www.openrdf.org/config/sail/memory#>.
-
- [] a rep:Repository ;
- rep:repositoryID "%1\$s" ;
- rdfs:label "%1\$s test repository" ;
- rep:repositoryImpl [
- rep:repositoryType "openrdf:SailRepository" ;
- sr:sailImpl [
- sail:sailType "openrdf:MemoryStore" ;
- ms:persist false ;
- ms:syncDelay 0
- ]
- ].
-EOT;
-
- const TEST_DOC = <<<EOT
- @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
- @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
- @prefix sesame: <http://www.openrdf.org/schema/sesame#> .
- @prefix owl: <http://www.w3.org/2002/07/owl#> .
- @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
- @prefix fn: <http://www.w3.org/2005/xpath-functions#> .
-
- _:genid-2267740936ad4d04a567e6787732f0dd-genid1 a <http://www.europeana.eu/schemas/edm/Place> ;
- owl:sameAs <http://sws.geonames.org/3038033/> ;
- <http://www.w3.org/2004/02/skos/core#note> "northlimit=47.431892250000033; southlimit=49.053971250000046;westlimit=6.846186050000028; eastlimit=8.232571550000074;"^^<http://purl.org/dc/terms/Box> , "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Alsace"@fr .
-
- <%1\$scrdo-ALA_738> a <http://www.openarchives.org/ore/terms/Aggregation> ;
- <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_738> ;
- <http://www.europeana.eu/schemas/edm/dataProvider> "Atlas linguistiques, cultures et parlers régionaux de France" ;
- <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> , <http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> ;
- <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-ALA_738> ;
- <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> ;
- <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
- <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-nd/4.0/> .
+ const REPO_CREATION_TTL = __DIR__.'/files/DocumentRepositoryIntegrationTest/repo_creation.ttl';
- <http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
- <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
- <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> .
-
- <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
- <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
- <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
-
- <http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
- <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
- <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
- <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
- <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> .
-
- <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_738> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
- <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
- <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
- <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/61542329> , <http://viaf.org/viaf/9122216> ;
- <http://purl.org/dc/elements/1.1/description> "Extrait des enquêtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr ;
- <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> ;
- <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers régionaux de France" ;
- <http://purl.org/dc/elements/1.1/rights> "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
- <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> , <http://ark.bnf.fr/ark:/12148/cb11931472p> , <http://ark.bnf.fr/ark:/12148/cb11931564b> , <http://ark.bnf.fr/ark:/12148/cb11932194d> , <http://ark.bnf.fr/ark:/12148/cb11933029x> , <http://ark.bnf.fr/ark:/12148/cb11933281k> , <http://ark.bnf.fr/ark:/12148/cb11934740m> , <http://ark.bnf.fr/ark:/12148/cb11935375d> , <http://ark.bnf.fr/ark:/12148/cb11935986q> , <http://ark.bnf.fr/ark:/12148/cb11936549n> , <http://ark.bnf.fr/ark:/12148/cb11937931x> , <http://ark.bnf.fr/ark:/12148/cb119392962> , <http://ark.bnf.fr/ark:/12148/cb119458243> , <http://ark.bnf.fr/ark:/12148/cb11946662b> , <http://ark.bnf.fr/ark:/12148/cb11947332t> , <http://ark.bnf.fr/ark:/12148/cb119481497> , <http://ark.bnf.fr/ark:/12148/cb119591726> , <http://ark.bnf.fr/ark:/12148/cb119756721> , <http://ark.bnf.fr/ark:/12148/cb119757609> , <http://ark.bnf.fr/ark:/12148/cb11975806s> , <http://ark.bnf.fr/ark:/12148/cb119759527> , <http://ark.bnf.fr/ark:/12148/cb12032030g> , <http://ark.bnf.fr/ark:/12148/cb12042429k> , <http://ark.bnf.fr/ark:/12148/cb12099148r> , <http://ark.bnf.fr/ark:/12148/cb12148936v> , <http://ark.bnf.fr/ark:/12148/cb12289036m> , <http://ark.bnf.fr/ark:/12148/cb13318335q> , <http://ark.bnf.fr/ark:/12148/cb133183540> , <http://ark.bnf.fr/ark:/12148/cb13318415c> , <http://ark.bnf.fr/ark:/12148/cb13318491g> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
- <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_738"@fr ;
- <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> ;
- <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
- <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> ;
- <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> ;
- <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> ;
- <http://purl.org/dc/terms/spatial> _:genid-2267740936ad4d04a567e6787732f0dd-genid1 ;
- <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/9122216> ;
- <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/61542329> , <http://viaf.org/viaf/9122216> .
-EOT;
+ const TEST_DOC = __DIR__.'/files/DocumentRepositoryIntegrationTest/test_doc.ttl';
+ const TEST_DOC_NO_GEO = __DIR__.'/files/DocumentRepositoryIntegrationTest/test_doc_no_geo.ttl';
function __construct(string $name = null) {
parent::__construct($name);
@@ -103,7 +26,7 @@
public function setUp() {
parent::setUp();
- $this->graph = new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_738", sprintf(DocumentRepositoryIntegrationTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri')));
+ $this->graph = new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_738", sprintf(file_get_contents(DocumentRepositoryIntegrationTest::TEST_DOC), config('corpusparole.corpus_doc_id_base_uri')));
$this->httpClient = new Client(['base_uri' => config('corpusparole.sesame_base_url')]);
$this->sesameRepository = config('corpusparole.sesame_repository');
@@ -111,7 +34,7 @@
$this->documentRepository = $this->app->make('CorpusParole\Repositories\DocumentRepository');
$uniqueid = uniqid('corpusparole', true);
- $repoCreateStmt = sprintf(DocumentRepositoryIntegrationTest::REPO_CREATION_TTL, $this->sesameRepository);
+ $repoCreateStmt = sprintf(file_get_contents(DocumentRepositoryIntegrationTest::REPO_CREATION_TTL), $this->sesameRepository);
$this->httpClient->delete("repositories/$this->sesameRepository", ['http_errors' => false]);
$this->httpClient->post('repositories/SYSTEM/statements', [
'headers' => ['Content-type' => 'application/x-turtle;charset=UTF-8'],
@@ -120,20 +43,26 @@
]);
$this->httpClient->put("repositories/$this->sesameRepository/statements", [
'headers' => ['Content-type' => 'text/turtle;charset=UTF-8'],
- 'body' => sprintf(DocumentRepositoryIntegrationTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri')),
+ 'body' => sprintf(file_get_contents(DocumentRepositoryIntegrationTest::TEST_DOC), config('corpusparole.corpus_doc_id_base_uri')),
'query' => ['context' => "<".config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_738>"],
]);
+ $this->httpClient->put("repositories/$this->sesameRepository/statements", [
+ 'headers' => ['Content-type' => 'text/turtle;charset=UTF-8'],
+ 'body' => sprintf(file_get_contents(DocumentRepositoryIntegrationTest::TEST_DOC_NO_GEO), config('corpusparole.corpus_doc_id_base_uri')),
+ 'query' => ['context' => "<".config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_739>"],
+ ]);
+
}
public function tearDown() {
- //$this->httpClient->delete("repositories/$this->sesameRepository");
+ $this->httpClient->delete("repositories/$this->sesameRepository");
parent::tearDown();
}
public function testAll() {
$expectedId = $this->corpusDocIdBaseUri.'crdo-ALA_738';
$docList = $this->documentRepository->all();
- $this->assertCount(1, $docList, "Should have one element");
+ $this->assertCount(2, $docList, "Should have one element");
$resDoc = $docList[0];
@@ -147,7 +76,7 @@
public function testGet() {
$expectedId = $this->corpusDocIdBaseUri.'crdo-ALA_738';
- $returnedGraph = new EasyRdf\Graph($expectedId, sprintf(DocumentRepositoryIntegrationTest::TEST_DOC,config('corpusparole.corpus_doc_id_base_uri')));
+ $returnedGraph = new EasyRdf\Graph($expectedId, sprintf(file_get_contents(DocumentRepositoryIntegrationTest::TEST_DOC),config('corpusparole.corpus_doc_id_base_uri')));
$res = $this->documentRepository->get('crdo-ALA_738');
@@ -161,7 +90,7 @@
public function testGetShort() {
$expectedId = $this->corpusDocIdBaseUri.'crdo-ALA_738';
- $returnedGraph = new EasyRdf\Graph($expectedId, sprintf(DocumentRepositoryIntegrationTest::TEST_DOC,config('corpusparole.corpus_doc_id_base_uri')));
+ $returnedGraph = new EasyRdf\Graph($expectedId, sprintf(file_get_contents(DocumentRepositoryIntegrationTest::TEST_DOC),config('corpusparole.corpus_doc_id_base_uri')));
$res = $this->documentRepository->get('crdo-ALA_738', true);
@@ -172,6 +101,111 @@
$this->assertTrue(EasyRdf\Isomorphic::isomorphic($res->getGraph(),$returnedGraph));
}
+ public function testNoGeo() {
+ $expectedId = $this->corpusDocIdBaseUri.'crdo-ALA_739';
+ $returnedGraph = new EasyRdf\Graph($expectedId, sprintf(file_get_contents(DocumentRepositoryIntegrationTest::TEST_DOC_NO_GEO),config('corpusparole.corpus_doc_id_base_uri')));
+
+ $res = $this->documentRepository->get('crdo-ALA_739');
+
+ $this->assertNull($res->getGeoInfo(), "Must have no geo info");
+
+ }
+
+ /**
+ * @expectedException CorpusParole\Libraries\CorpusParoleException
+ * @expectedExceptionMessage GetDeltaList called when changes are pending
+ */
+ public function testAddGeoNoCommit() {
+
+ $doc = $this->documentRepository->get('crdo-ALA_739');
+
+ $geoInfo = $doc->addGeoInfo();
+
+ $res = $this->documentRepository->save($doc);
+ }
+
+
+ public function testAddGeo() {
+
+ $doc = $this->documentRepository->get('crdo-ALA_739');
+
+ $geoInfo = $doc->addGeoInfo();
+ $geoInfo->commit();
+
+ $res = $this->documentRepository->save($doc);
+
+ $res = $this->documentRepository->get('crdo-ALA_739');
+
+ $geoInfo = $res->getGeoInfo();
+
+ $this->assertNotNull($geoInfo, "Must have Geo info");
+
+ $notes = $geoInfo->getNotes();
+
+ $this->assertTrue(is_array($notes));
+ $this->assertCount(0, $notes);
+
+ $refLocs = $geoInfo->getRefLocs();
+
+ $this->assertTrue(is_array($refLocs));
+ $this->assertCount(0,$refLocs);
+
+ }
+
+ public function testAddGeoExisting() {
+
+ $doc = $this->documentRepository->get('crdo-ALA_738');
+
+ $geoInfo = $doc->addGeoInfo();
+ $geoInfo->commit();
+
+ $res = $this->documentRepository->save($doc);
+
+ $res = $this->documentRepository->get('crdo-ALA_738');
+
+ $geoInfo = $res->getGeoInfo();
+
+ $this->assertNotNull($geoInfo, "Must have Geo info");
+
+ $notes = $geoInfo->getNotes();
+
+ $this->assertTrue(is_array($notes));
+ $this->assertCount(3, $notes);
+
+ $refLocs = $geoInfo->getRefLocs();
+
+ $this->assertTrue(is_array($refLocs));
+ $this->assertCount(1,$refLocs);
+
+ }
+
+ public function testGeoSetRefLoc() {
+
+ $doc = $this->documentRepository->get('crdo-ALA_738');
+ $geoInfo = $doc->addGeoInfo();
+
+ $newRefLocs = [ 'http://sws.geonames.org/2643743/' ];
+
+ $geoInfo->setRefLocs($newRefLocs);
+
+ $geoInfo->commit();
+
+ $res = $this->documentRepository->save($doc);
+
+ $res = $this->documentRepository->get('crdo-ALA_738');
+
+ $geoInfo = $res->getGeoInfo();
+
+ $refLocs = $geoInfo->getRefLocs();
+
+ $this->assertTrue(is_array($refLocs));
+ $this->assertCount(1,$refLocs);
+
+ $this->assertEquals(['http://sws.geonames.org/2643743/'], $refLocs);
+
+ }
+
+
public function testSave() {
@@ -204,7 +238,7 @@
$res = $this->documentRepository->getCount();
$this->assertNotNull($res, "Res should not be null");
- $this->assertSame(1, $res, "should heve only one document");
+ $this->assertSame(2, $res, "should have 2 documents");
}
--- a/server/src/tests/Repositories/DocumentRepositoryTest.php Thu Sep 22 15:34:10 2016 +0200
+++ b/server/src/tests/Repositories/DocumentRepositoryTest.php Thu Sep 22 15:42:12 2016 +0200
@@ -156,6 +156,7 @@
$sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient', function($mock) {
$mock->shouldReceive('startTransaction')->andReturn(true)
+ ->shouldReceive('deleteWhere')
->shouldReceive('delete')->shouldReceive('add')
->shouldReceive('commit')->andReturn(true);
});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Repositories/files/DocumentRepositoryIntegrationTest/repo_creation.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,17 @@
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
+@prefix rep: <http://www.openrdf.org/config/repository#>.
+@prefix sr: <http://www.openrdf.org/config/repository/sail#>.
+@prefix sail: <http://www.openrdf.org/config/sail#>.
+@prefix ms: <http://www.openrdf.org/config/sail/memory#>.
+
+[] a rep:Repository ;
+ rep:repositoryID "%1$s" ;
+ rdfs:label "%1$s test repository" ;
+ rep:repositoryImpl [
+ rep:repositoryType "openrdf:SailRepository" ;
+ sr:sailImpl [
+ sail:sailType "openrdf:MemoryStore" ;
+ ms:persist false ;
+ ms:syncDelay 0
+ ]
+ ].
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Repositories/files/DocumentRepositoryIntegrationTest/test_doc.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,61 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+_:genid-2267740936ad4d04a567e6787732f0dd-genid1 a <http://www.europeana.eu/schemas/edm/Place> ;
+ owl:sameAs <http://sws.geonames.org/3038033/> ;
+ <http://www.w3.org/2004/02/skos/core#note> "northlimit=47.431892250000033; southlimit=49.053971250000046;westlimit=6.846186050000028; eastlimit=8.232571550000074;"^^<http://purl.org/dc/terms/Box> , "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Alsace"@fr ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#lat> "48.73194"^^xsd:float ;
+ <http://www.w3.org/2003/01/geo/wgs84_pos#long> "7.70833"^^xsd:float .
+
+<%1$scrdo-ALA_738> a <http://www.openarchives.org/ore/terms/Aggregation> ;
+ <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_738> ;
+ <http://www.europeana.eu/schemas/edm/dataProvider> "Atlas linguistiques, cultures et parlers régionaux de France" ;
+ <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> , <http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> ;
+ <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-ALA_738> ;
+ <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> ;
+ <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
+ <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-nd/4.0/> .
+
+<http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> .
+
+<http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
+
+<http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> .
+
+<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_738> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/61542329> , <http://viaf.org/viaf/9122216> ;
+ <http://purl.org/dc/elements/1.1/description> "Extrait des enquêtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> ;
+ <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers régionaux de France" ;
+ <http://purl.org/dc/elements/1.1/rights> "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
+ <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> , <http://ark.bnf.fr/ark:/12148/cb11931472p> , <http://ark.bnf.fr/ark:/12148/cb11931564b> , <http://ark.bnf.fr/ark:/12148/cb11932194d> , <http://ark.bnf.fr/ark:/12148/cb11933029x> , <http://ark.bnf.fr/ark:/12148/cb11933281k> , <http://ark.bnf.fr/ark:/12148/cb11934740m> , <http://ark.bnf.fr/ark:/12148/cb11935375d> , <http://ark.bnf.fr/ark:/12148/cb11935986q> , <http://ark.bnf.fr/ark:/12148/cb11936549n> , <http://ark.bnf.fr/ark:/12148/cb11937931x> , <http://ark.bnf.fr/ark:/12148/cb119392962> , <http://ark.bnf.fr/ark:/12148/cb119458243> , <http://ark.bnf.fr/ark:/12148/cb11946662b> , <http://ark.bnf.fr/ark:/12148/cb11947332t> , <http://ark.bnf.fr/ark:/12148/cb119481497> , <http://ark.bnf.fr/ark:/12148/cb119591726> , <http://ark.bnf.fr/ark:/12148/cb119756721> , <http://ark.bnf.fr/ark:/12148/cb119757609> , <http://ark.bnf.fr/ark:/12148/cb11975806s> , <http://ark.bnf.fr/ark:/12148/cb119759527> , <http://ark.bnf.fr/ark:/12148/cb12032030g> , <http://ark.bnf.fr/ark:/12148/cb12042429k> , <http://ark.bnf.fr/ark:/12148/cb12099148r> , <http://ark.bnf.fr/ark:/12148/cb12148936v> , <http://ark.bnf.fr/ark:/12148/cb12289036m> , <http://ark.bnf.fr/ark:/12148/cb13318335q> , <http://ark.bnf.fr/ark:/12148/cb133183540> , <http://ark.bnf.fr/ark:/12148/cb13318415c> , <http://ark.bnf.fr/ark:/12148/cb13318491g> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_738"@fr ;
+ <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> ;
+ <http://purl.org/dc/terms/spatial> _:genid-2267740936ad4d04a567e6787732f0dd-genid1 ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/9122216> ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> <http://viaf.org/viaf/61542329> , <http://viaf.org/viaf/9122216> .
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/tests/Repositories/files/DocumentRepositoryIntegrationTest/test_doc_no_geo.ttl Thu Sep 22 15:42:12 2016 +0200
@@ -0,0 +1,54 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix fn: <http://www.w3.org/2005/xpath-functions#> .
+
+<%1$scrdo-ALA_739> a <http://www.openarchives.org/ore/terms/Aggregation> ;
+ <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_739> ;
+ <http://www.europeana.eu/schemas/edm/dataProvider> "Atlas linguistiques, cultures et parlers régionaux de France" ;
+ <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> , <http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> ;
+ <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-ALA_739> ;
+ <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> ;
+ <http://www.europeana.eu/schemas/edm/provider> "Corpus de la Parole"@fr ;
+ <http://www.europeana.eu/schemas/edm/rights> <http://creativecommons.org/licenses/by-nc-nd/4.0/> .
+
+<http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/mpeg"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> .
+
+<http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> .
+
+<http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> a <http://www.europeana.eu/schemas/edm/WebResource> ;
+ <http://purl.org/dc/elements/1.1/format> "audio/x-wav"^^<http://purl.org/dc/terms/IMT> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://www.europeana.eu/schemas/edm/isDerivativeOf> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> .
+
+<http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_739> a <http://www.europeana.eu/schemas/edm/ProvidedCHO> ;
+ <http://purl.org/dc/terms/created> "1996"^^<http://purl.org/dc/terms/Period> ;
+ <http://purl.org/dc/terms/extent> "PT01H11M29S" ;
+ <http://purl.org/dc/terms/issued> "2014-11-10T14:27:08+01:00"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/elements/1.1/contributor> <http://viaf.org/viaf/61542329> , <http://viaf.org/viaf/9122216> ;
+ <http://purl.org/dc/elements/1.1/description> "Extrait des enquêtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr ;
+ <http://purl.org/dc/elements/1.1/language> <http://lexvo.org/id/iso639-3/gsw> ;
+ <http://purl.org/dc/elements/1.1/publisher> "Atlas linguistiques, cultures et parlers régionaux de France" ;
+ <http://purl.org/dc/elements/1.1/rights> "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ;
+ <http://purl.org/dc/elements/1.1/subject> <http://lexvo.org/id/iso639-3/gsw> , <http://ark.bnf.fr/ark:/12148/cb11931472p> , <http://ark.bnf.fr/ark:/12148/cb11931564b> , <http://ark.bnf.fr/ark:/12148/cb11932194d> , <http://ark.bnf.fr/ark:/12148/cb11933029x> , <http://ark.bnf.fr/ark:/12148/cb11933281k> , <http://ark.bnf.fr/ark:/12148/cb11934740m> , <http://ark.bnf.fr/ark:/12148/cb11935375d> , <http://ark.bnf.fr/ark:/12148/cb11935986q> , <http://ark.bnf.fr/ark:/12148/cb11936549n> , <http://ark.bnf.fr/ark:/12148/cb11937931x> , <http://ark.bnf.fr/ark:/12148/cb119392962> , <http://ark.bnf.fr/ark:/12148/cb119458243> , <http://ark.bnf.fr/ark:/12148/cb11946662b> , <http://ark.bnf.fr/ark:/12148/cb11947332t> , <http://ark.bnf.fr/ark:/12148/cb119481497> , <http://ark.bnf.fr/ark:/12148/cb119591726> , <http://ark.bnf.fr/ark:/12148/cb119756721> , <http://ark.bnf.fr/ark:/12148/cb119757609> , <http://ark.bnf.fr/ark:/12148/cb11975806s> , <http://ark.bnf.fr/ark:/12148/cb119759527> , <http://ark.bnf.fr/ark:/12148/cb12032030g> , <http://ark.bnf.fr/ark:/12148/cb12042429k> , <http://ark.bnf.fr/ark:/12148/cb12099148r> , <http://ark.bnf.fr/ark:/12148/cb12148936v> , <http://ark.bnf.fr/ark:/12148/cb12289036m> , <http://ark.bnf.fr/ark:/12148/cb13318335q> , <http://ark.bnf.fr/ark:/12148/cb133183540> , <http://ark.bnf.fr/ark:/12148/cb13318415c> , <http://ark.bnf.fr/ark:/12148/cb13318491g> , "anthropological_linguistics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "lexicography"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> , "phonetics"^^<http://www.language-archives.org/OLAC/1.1/linguistic-field> ;
+ <http://purl.org/dc/elements/1.1/title> "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_738"@fr ;
+ <http://purl.org/dc/elements/1.1/type> <http://ark.bnf.fr/ark:/12148/cb11932135w> , <http://ark.bnf.fr/ark:/12148/cb12481481z> , <http://purl.org/dc/dcmitype/Sound> , "dialogue"^^<http://www.language-archives.org/OLAC/1.1/discourse-type> , "primary_text"^^<http://www.language-archives.org/OLAC/1.1/linguistic-type> ;
+ <http://purl.org/dc/terms/accessRights> "Freely available for non-commercial use" ;
+ <http://purl.org/dc/terms/available> "2004-07-03"^^<http://purl.org/dc/terms/W3CDTF> ;
+ <http://purl.org/dc/terms/isPartOf> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_ALA_CL> , <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-COLLECTION_LANGUESDEFRANCE> ;
+ <http://purl.org/dc/terms/license> <http://creativecommons.org/licenses/by-nc-nd/2.5/> ;
+ <http://www.language-archives.org/OLAC/1.1/depositor> <http://viaf.org/viaf/9122216> ;
+ <http://www.language-archives.org/OLAC/1.1/interviewer> <http://via]f.org/viaf/61542329> , <http://viaf.org/viaf/9122216> .