diff -r 17f10b56c079 -r 8fddc113095e server/src/app/Libraries/Mergers/CocoonAbstractRdfMerger.php --- 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); }