--- a/server/src/app/Libraries/Mergers/CocoonAbstractRdfMerger.php Thu Jun 02 18:24:19 2016 +0200
+++ b/server/src/app/Libraries/Mergers/CocoonAbstractRdfMerger.php Sun Jun 05 00:28:45 2016 +0200
@@ -47,7 +47,7 @@
$this->mergedArray[$baseResource->getUri()] = $baseGraph->toRdfPhp()[$baseResource->getUri()];
}
foreach($srcGraph->allOfType($nodeType) as $srcResource) {
- if($baseResource->isBNode()) {
+ if($srcResource->isBNode()) {
continue;
}
if(empty($baseGraph->propertyUris($srcResource->getUri()))) {
@@ -69,10 +69,12 @@
$baseUrl = isset($bnodeDef['base_url'])?$bnodeDef['base_url']:null;
if(is_null($srcUrl) && !is_null($baseUrl)) {
- $this->mergedArray[$bnodeId] = $this->copyResource($baseGraph->toRdfPhp()[$baseUrl],CocoonAbstractRdfMerger::ORIGIN_BASE);
+ $copyResource = $this->copyResource($baseGraph->toRdfPhp()[$baseUrl],CocoonAbstractRdfMerger::ORIGIN_BASE);
+ $this->mergedArray[$bnodeId] = $copyResource;
}
elseif (is_null($baseUrl) && !is_null($srcUrl)) {
- $this->mergedArray[$bnodeId] = $this->copyResource($srcGraph->toRdfPhp()[$srcUrl],CocoonAbstractRdfMerger::ORIGIN_SRC);
+ $copyResource = $this->copyResource($srcGraph->toRdfPhp()[$srcUrl],CocoonAbstractRdfMerger::ORIGIN_SRC);
+ $this->mergedArray[$bnodeId] = $copyResource;
}
elseif (!is_null($baseUrl) && !is_null($srcUrl)) {
@@ -190,7 +192,7 @@
$srcArray = array_key_exists($srcRes->getUri(), $srcRdfPhp)?$srcRdfPhp[$srcRes->getUri()]:[];
$baseRdfPhp = $this->baseGraph->toRdfPhp();
$baseArray = array_key_exists($baseRes->getUri(), $baseRdfPhp)?$baseRdfPhp[$baseRes->getUri()]:[];
- foreach($srcRes->propertyUris() as $prop) {
+ foreach(array_unique(array_merge($srcRes->propertyUris(), $baseRes->propertyUris())) as $prop) {
if(in_array($prop, $singleBNodeProperties)) {
$this->mergePropertySingleBNode($prop, $targetArray, $baseArray, $srcArray);
}