server/src/app/Models/GeoResource.php
author Chloe Laisne <chloe.laisne@gmail.com>
Fri, 23 Sep 2016 15:56:38 +0200
changeset 285 6d8e7e6dc83c
parent 277 bd4bc1db4f40
child 308 e032d686d88e
permissions -rw-r--r--
Geostat model
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
namespace CorpusParole\Models;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
     4
use CorpusParole\Libraries\CorpusParoleException;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use CorpusParole\Libraries\RdfModel\RdfModelResource;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
use CorpusParole\Libraries\Utils;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
use JsonSerializable;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
use Log;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
/**
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 */
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
class GeoResource extends RdfModelResource implements JsonSerializable {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    14
    public function __construct($uri, $graph, $providedCHO) {
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        parent::__construct($uri, $graph);
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    16
        $this->providedCHO = $providedCHO;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    17
        $this->readOnly = true;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    18
        $this->changePending = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    19
        $this->needDelete = false;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    22
    private $providedCHO = null;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    23
    private $readOnly = true;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    24
    private $changePending = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    25
    private $needDelete = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    26
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    27
    private $refLocs = null;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    private $notes = null;
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    29
    private $latitude = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    30
    private $longitude = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    31
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    32
    public function getDeltaList() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    33
        if($this->changePending) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    34
            throw new CorpusParoleException('GetDeltaList called when changes are pending');
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    35
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    36
        return parent::getDeltaList();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    37
    }
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    public function clearMemoizationCache() {
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    40
        $this->refLocs = null;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        $this->notes = null;
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    42
        $this->latitude = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    43
        $this->longitude = false;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    46
    public function getRefLocs() {
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    47
        if(is_null($this->refLocs)) {
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    48
            $refLocs = $this->allResources("<http://www.w3.org/2002/07/owl#sameAs>");
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    49
            $this->refLocs = array_map(function($refLoc) { return $refLoc->getUri();}, $refLocs);
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        }
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
    51
        return $this->refLocs;
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    54
    public function setRefLocs($refLocs) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    55
        if(!$this->changePending) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    56
            throw new CorpusParoleException('Can call setRefLocs only when changes are pending');
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    57
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    58
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    59
        $this->delete("<http://www.w3.org/2002/07/owl#sameAs>");
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    60
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    61
        foreach($refLocs as $refLocUri) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    62
            $this->addResource("http://www.w3.org/2002/07/owl#sameAs", $refLocUri);
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    63
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    64
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    65
        $this->clearMemoizationCache();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    66
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    67
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    68
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    public function getNotes() {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
        if(is_null($this->notes)) {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
            $this->notes = $this->all('<http://www.w3.org/2004/02/skos/core#note>');
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
        return $this->notes;
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    76
    public function getLatitude() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    77
        if($this->latitude === false) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    78
            try {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    79
                $this->latitude = $this->getLiteral('<http://www.w3.org/2003/01/geo/wgs84_pos#lat>');
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    80
            } catch(\Exception $e) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    81
                $this->latitude = null;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    82
            }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    83
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    84
        return $this->latitude;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    85
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    86
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    87
    public function getLatitudeValue() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    88
        $lat = $this->getLatitude();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    89
        return is_null($lat)?null:$lat->getValue();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    90
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    91
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    92
    public function getLongitude() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    93
        if($this->longitude === false) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    94
            try {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    95
                $this->longitude = $this->getLiteral('<http://www.w3.org/2003/01/geo/wgs84_pos#long>');
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    96
            } catch(\Exception $e) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    97
                $this->longitude = null;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    98
            }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
    99
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   100
        return $this->longitude;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   101
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   102
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   103
    public function getLongitudeValue() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   104
        $long = $this->getLongitude();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   105
        return is_null($long)?null:$long->getValue();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   106
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   107
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   108
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   109
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
    public function jsonSerialize() {
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
        $notes = array_map(
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
            function($note) { return Utils::processLiteralResourceOrString($note); },
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
            $this->getNotes()
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
        );
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
        return [
171
f4f558f04f37 georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents: 169
diff changeset
   116
            'ref-locs' => $this->getRefLocs(),
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   117
            'notes' => $notes,
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   118
            'latitude' => $this->getLatitudeValue(),
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   119
            'longitude' => $this->getLongitudeValue(),
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
        ];
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
    }
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
277
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   123
    public function setReadOnly($ro) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   124
        if($this->readOnly and !$ro) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   125
            $this->changePending = true;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   126
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   127
        $this->readOnly = $ro;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   128
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   129
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   130
    public function setNeedDelete($nd) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   131
        $this->needDelete = $nd;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   132
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   133
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   134
    public function rollback() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   135
        $this->changePending = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   136
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   137
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   138
    public function commit() {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   139
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   140
        // Do nothing if there is no change pending
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   141
        if(!$this->changePending) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   142
            return;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   143
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   144
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   145
        $delta = $this->startDelta();
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   146
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   147
        //delete the previous blank node
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   148
        if($this->needDelete) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   149
            $delta->addDeleteWhere(
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   150
                "?s ?p ?o. ".
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   151
                "{ ".
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   152
                "    ?_ <http://purl.org/dc/terms/spatial> ?s. ".
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   153
                "} ".
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   154
                "UNION { ".
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   155
                "    ?s <http://purl.org/dc/terms/spatial> ?o ".
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   156
                "}"
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   157
            );
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   158
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   159
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   160
        // add the node
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   161
        $geoinfoNodeAdded = $delta->getAddedGraph()->newBNode("http://www.europeana.eu/schemas/edm/Place");
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   162
        $delta->getAddedGraph()->add($this->providedCHO, "http://purl.org/dc/terms/spatial", $geoinfoNodeAdded);
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   163
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   164
        foreach($this->propertyUris() as $prop) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   165
            if($prop == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   166
                continue;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   167
            }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   168
            foreach($this->all("<$prop>") as $propVal) {
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   169
                $delta->getAddedGraph()->add($geoinfoNodeAdded, $prop, $propVal);
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   170
            }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   171
        }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   172
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   173
        $this->changePending = false;
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   174
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   175
    }
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   176
bd4bc1db4f40 add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents: 171
diff changeset
   177
169
8fddc113095e Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
}