server/src/app/Libraries/Mappers/CocoonSoundRdfMapper.php
changeset 18 f2a40bbc27f6
child 111 af85c436048f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Libraries/Mappers/CocoonSoundRdfMapper.php	Tue Nov 17 13:11:55 2015 +0100
@@ -0,0 +1,142 @@
+<?php
+namespace CorpusParole\Libraries\Mappers;
+
+use Config;
+
+use CorpusParole\Libraries\Utils;
+use CorpusParole\Libraries\CocoonUtils;
+
+use EasyRdf\Graph;
+use EasyRdf\Literal;
+use EasyRdf\Resource;
+
+
+/**
+ *
+ * rdf:type
+ * sesame:directType
+ ** <http://purl.org/dc/elements/1.1/description> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/format> -> webRepresentation
+ * <http://purl.org/dc/elements/1.1/language> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/publisher> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/rights> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/subject> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/title> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/type> -> providedCHO
+ * <http://purl.org/dc/terms/accessRights> -> providedCHO
+ * <http://purl.org/dc/terms/available> -> providedCHO
+ * <http://purl.org/dc/terms/conformsTo> -> for text -> webRepresentation (2 val : http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_transcriber : transcript, http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-dtd_archive)
+ * <http://purl.org/dc/terms/created> -> providedCHO
+ * <http://purl.org/dc/terms/isFormatOf> -> webResource
+ *** <http://purl.org/dc/terms/isPartOf> ->collections
+ * <http://purl.org/dc/terms/issued> -> providedCHO
+ * <http://purl.org/dc/terms/license> -> providedCHO
+ *** <http://purl.org/dc/terms/requires> -> transcriptions
+ * <http://www.language-archives.org/OLAC/1.1/data_inputter> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/depositor> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/editor> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/interviewer> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/researcher> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/speaker> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/transcriber> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/participant> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/compiler> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/interpreter> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/author> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/translator> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/signer> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/recorder> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/responder> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/developer> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/sponsor> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/annotator> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/singer> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/consultant> -> providedCHO
+ * <http://www.language-archives.org/OLAC/1.1/research_participant> -> providedCHO
+ * <http://crdo.risc.cnrs.fr/schemas/master> -> webRepresentation
+ * <http://purl.org/dc/terms/extent> -> webRepresentation
+ * <http://purl.org/dc/terms/isRequiredBy> -> transcriptions
+ * <http://purl.org/dc/terms/spatial> -> edm:Place
+ * <http://www.w3.org/2003/01/geo/wgs84_pos#lat> -> edm:Place
+ * <http://www.w3.org/2003/01/geo/wgs84_pos#long> -> edm:Place
+ * <http://purl.org/dc/elements/1.1/source> -> providedCHO
+ * <http://purl.org/dc/terms/tableOfContents> -> providedCHO
+ * <http://purl.org/dc/terms/alternative> -> providedCHO
+ * <http://purl.org/dc/terms/modified> -> providedCHO
+ * <http://purl.org/dc/terms/abstract> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/identifier> -> providedCHO but question...
+ * <http://purl.org/dc/terms/medium> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/coverage> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/relation> - providedCHO
+ * <http://purl.org/dc/terms/description> -> ProvidedCHO
+ * <http://purl.org/dc/terms/bibliographicCitation> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/creator> -> providedCHO
+ * <http://purl.org/dc/terms/references> -> providedCHO
+ * <http://purl.org/dc/elements/1.1/reference> -> providedCHO
+ *
+ * pour olac : http://quijote.fdi.ucm.es:8084/LLOD-LSASummerWorkshop2015/Presentations/Simons--OLAC%20Metadata.pdf
+ * DATA consolidation
+ * -> edm:place : get label + altLabel
+ */
+class CocoonSoundRdfMapper extends CocoonContentRdfMapper {
+
+    protected function getResourceBaseId($res=null) {
+
+        if(is_null($res)) {
+            $res = $this->inputGraph->resource($this->uri);
+        }
+        return $res->getUri();
+    }
+
+    /**
+     * Build teh webresources
+     */
+    protected function mapWebResources($res, $outputGraph) {
+
+        $resId = CocoonUtils::getIdFromUri($res->getUri());
+        $resUri = CocoonUtils::getCorpusUriFromId($resId);
+
+
+        $aggregationNode = $outputGraph->resource($resUri, 'ore:Aggregation');
+
+        // get extent
+        $extent = $res->get($this->inputGraph->resource('http://purl.org/dc/terms/extent'));
+
+        // build master webresources
+        $masterReprUrl = $res->get($this->inputGraph->resource('http://crdo.risc.cnrs.fr/schemas/master'));
+        if(! is_null($masterReprUrl)) {
+            $masterWebResource = $outputGraph->resource($masterReprUrl, 'edm:WebResources');
+            if(!is_null($extent)) {
+                $masterWebResource->addLiteral($outputGraph->resource('http://purl.org/dc/terms/extent'),$extent);
+            }
+            $formatAdded = false;
+            foreach($res->all($this->inputGraph->resource('http://purl.org/dc/elements/1.1/format')) as $wrformat) {
+                $masterWebResource->addLiteral('http://purl.org/dc/elements/1.1/format', $wrformat);
+                $formatAdded = true;
+            }
+            if(!$formatAdded) {
+                $mimetype = Utils::getMimetype($masterReprUrl);
+                $masterWebResource->addLiteral('http://purl.org/dc/elements/1.1/format', Literal::create($mimetype, null, $outputGraph->resource('http://purl.org/dc/terms/IMT')));
+            }
+
+            $this->addDateToWebResource($res, $masterWebResource);
+
+        }
+
+        // build others
+        foreach($res->all($this->inputGraph->resource('http://purl.org/dc/terms/isFormatOf')) as $reprUrl) {
+            $webResource = $outputGraph->resource($reprUrl, 'edm:WebResources');
+            if(!is_null($extent)) {
+                $webResource->addLiteral($outputGraph->resource('http://purl.org/dc/terms/extent'),$extent);
+            }
+            $mimetype = Utils::getMimetype($reprUrl);
+            $webResource->addLiteral('http://purl.org/dc/elements/1.1/format', Literal::create($mimetype, null, $outputGraph->resource('http://purl.org/dc/terms/IMT')));
+
+            if(!is_null($masterReprUrl)) {
+                $webResource->addResource('edm:isDerivativeOf', $masterReprUrl);
+            }
+            $this->addDateToWebResource($res, $webResource);
+            $aggregationNode->addResource('edm:hasView', $reprUrl);
+        }
+    }
+}