author | ymh <ymh.work@gmail.com> |
Fri, 02 Dec 2016 00:22:31 +0100 | |
changeset 454 | 710a2ae08a74 |
parent 308 | e032d686d88e |
permissions | -rw-r--r-- |
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 |
|
308
e032d686d88e
add hierarchy info in document indexation + geostats api controllers + add some keys to geonames resolver
ymh <ymh.work@gmail.com>
parents:
277
diff
changeset
|
108 |
public function getGeonamesLocs() { |
e032d686d88e
add hierarchy info in document indexation + geostats api controllers + add some keys to geonames resolver
ymh <ymh.work@gmail.com>
parents:
277
diff
changeset
|
109 |
return preg_grep(config('corpusparole.geonames_url_regexp'), $this->getRefLocs()); |
e032d686d88e
add hierarchy info in document indexation + geostats api controllers + add some keys to geonames resolver
ymh <ymh.work@gmail.com>
parents:
277
diff
changeset
|
110 |
} |
277
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
111 |
|
169
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
112 |
public function jsonSerialize() { |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
113 |
$notes = array_map( |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
114 |
function($note) { return Utils::processLiteralResourceOrString($note); }, |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
115 |
$this->getNotes() |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
116 |
); |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
117 |
return [ |
171
f4f558f04f37
georesource ref-loc is now a list ref-locs
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
118 |
'ref-locs' => $this->getRefLocs(), |
277
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
119 |
'notes' => $notes, |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
120 |
'latitude' => $this->getLatitudeValue(), |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
121 |
'longitude' => $this->getLongitudeValue(), |
169
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
122 |
]; |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
123 |
} |
8fddc113095e
Correct proble on geo info merging + add geo resource
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
124 |
|
277
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
125 |
public function setReadOnly($ro) { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
126 |
if($this->readOnly and !$ro) { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
127 |
$this->changePending = true; |
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 |
$this->readOnly = $ro; |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
130 |
} |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
131 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
132 |
public function setNeedDelete($nd) { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
133 |
$this->needDelete = $nd; |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
134 |
} |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
135 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
136 |
public function rollback() { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
137 |
$this->changePending = false; |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
138 |
} |
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 |
public function commit() { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
141 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
142 |
// 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
|
143 |
if(!$this->changePending) { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
144 |
return; |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
145 |
} |
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 |
$delta = $this->startDelta(); |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
148 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
149 |
//delete the previous blank node |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
150 |
if($this->needDelete) { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
151 |
$delta->addDeleteWhere( |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
152 |
"?s ?p ?o. ". |
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 |
" ?_ <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
|
155 |
"} ". |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
156 |
"UNION { ". |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
157 |
" ?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
|
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 |
} |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
161 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
162 |
// add the node |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
163 |
$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
|
164 |
$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
|
165 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
166 |
foreach($this->propertyUris() as $prop) { |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
167 |
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
|
168 |
continue; |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
169 |
} |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
170 |
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
|
171 |
$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
|
172 |
} |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
173 |
} |
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 |
$this->changePending = false; |
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 |
} |
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
178 |
|
bd4bc1db4f40
add blank node save and geoinfo to back model
ymh <ymh.work@gmail.com>
parents:
171
diff
changeset
|
179 |
|
308
e032d686d88e
add hierarchy info in document indexation + geostats api controllers + add some keys to geonames resolver
ymh <ymh.work@gmail.com>
parents:
277
diff
changeset
|
180 |
} |