server/src/app/Console/Commands/ImportCocoonRDF.php
author ymh <ymh.work@gmail.com>
Thu, 16 Feb 2017 16:10:07 +0100
changeset 513 dad9471f0d63
parent 508 2cb514f10a72
child 518 4864076bf0e3
permissions -rw-r--r--
add filter on created date in notice
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
     1
<?php
1
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
     3
namespace CorpusParole\Console\Commands;
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
     4
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
     5
use Config;
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
     6
use Log;
1
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
use Illuminate\Console\Command;
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
use Symfony\Component\Console\Input\InputOption;
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
use Symfony\Component\Console\Input\InputArgument;
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    10
use Phpoaipmh\Client;
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    11
use Phpoaipmh\Endpoint;
1
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    13
class ImportCocoonRDF extends Command {
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    14
18
f2a40bbc27f6 add rdf mapper + merger + basic database model
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    15
    const INSERT_TIMEOUT_RETRY = 5;
f2a40bbc27f6 add rdf mapper + merger + basic database model
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
    16
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    17
    const MAPPER_CLASS_MAP = [
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    18
        "http://purl.org/dc/dcmitype/Sound" => '\CorpusParole\Libraries\Mappers\CocoonSoundRdfMapper',
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    19
        "http://purl.org/dc/dcmitype/MovingImage" => '\CorpusParole\Libraries\Mappers\CocoonSoundRdfMapper',
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    20
        "http://purl.org/dc/dcmitype/Text" => '\CorpusParole\Libraries\Mappers\CocoonTextRdfMapper',
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    21
        "http://purl.org/dc/dcmitype/Collection" => '\CorpusParole\Libraries\Mappers\CocoonCollectionRdfMapper'
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    22
    ];
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    23
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    24
    /**
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    25
     * The console command description.
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    26
     *
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    27
     * @var string
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    28
     */
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    29
    protected $description = 'Import Rdf from Cocoon.';
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    30
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    31
    /**
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    32
    * The name and signature of the console command.
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    33
    *
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    34
    * @var string
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    35
    */
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    36
    protected $signature = "corpus-parole:importRDF
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    37
        {--skip=0 : Number of record to skip}
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    38
        {--no-raw : Do not record raw queries}
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    39
        {--no-raw-clear : Do not clear raw repository}
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    40
        {--clear : Clear repository}
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    41
        {--force-import : Overwrite document from import event if the repo version is more recent}
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    42
        {--keep-repo-doc : Keep the existing doc in repo (default is replace document)}
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    43
    ";
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    44
    //protected $signature = 'corpus-parole:importRDF {--skip=0 : Number of record to skip}';
1
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    46
    /**
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    47
     * Create a new command instance.
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    48
     */
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    49
    public function __construct() {
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    50
        parent::__construct();
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    51
    }
1
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
    53
    /**
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    54
     * Get the list of dcmi types for the graph
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    55
     */
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    56
    private function getDocTypes($doc, $docUri) {
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    57
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    58
        $res = $doc->resource($docUri);
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    59
        $docTypes = [];
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    60
        //foreach ($res->all("http://purl.org/dc/elements/1.1/type") as $resType) {
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    61
        foreach ($res->all("dc11:type","resource") as $resType) {
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    62
            $type = $resType->getUri();
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    63
            if(0 === strpos($type, 'http://purl.org/dc/dcmitype/')) {
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    64
                $docTypes[] = $type;
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    65
            }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    66
        }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    67
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    68
        // if the doc type list is empty, check that we have a collection
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    69
        if(empty($docTypes)) {
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    70
            if(!empty($doc->allOfType('edm:Collection'))) {
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    71
                $docTypes[] = "http://purl.org/dc/dcmitype/Collection";
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    72
            }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    73
        }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    74
        return $docTypes;
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    75
    }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
    76
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    77
    /**
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    78
     * Map a documents into graphes.
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    79
     */
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    80
    public function mapDoc($doc, $docUri) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    81
        $inputDocTypes = $this->getDocTypes($doc, $docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    82
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    83
        $docType = count($inputDocTypes)>0? $inputDocTypes[0]:null;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    84
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    85
        if(is_null($docType) || !array_key_exists($docType,ImportCocoonRDF::MAPPER_CLASS_MAP)) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    86
            $this->error("\nError processing $identifier ($docRdfUrl) : $docType unknown mapper");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    87
            Log::error("Error processing $identifier ($docRdfUrl) : $docType unknown mapper");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    88
            $this->documentCount['unknown'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    89
            continue;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    90
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    91
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    92
        $mapperClass = ImportCocoonRDF::MAPPER_CLASS_MAP[$docType];
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    93
        $mapper = new $mapperClass($doc, $docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    94
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    95
        try {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    96
            $mapper->mapGraph();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    97
        } catch (\Exception $e) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    98
            Log::error("Error processing $identifier ($docRdfUrl) : error mapping graph : $e");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
    99
            $this->documentCount['error'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   100
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   101
        $this->documentCount['all'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   102
        $this->documentCount[$docType] = isset($this->documentCount[$docType])?$this->documentCount[$docType]+1:1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   103
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   104
        return [$docType, $mapper->getOutputGraphes()];
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   105
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   106
    }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   107
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   108
    public function mergeDocs($docType, $outputGraphes) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   109
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   110
        foreach ($outputGraphes as $mappedGraphKey => $mappedGraph) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   111
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   112
            $mappedGraphUri = $mappedGraph->getUri();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   113
            try {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   114
                $resDocs = $this->gs->query("CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$mappedGraphUri> { ?s ?p ?o }}");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   115
            } catch (\Exception $e) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   116
                $this->error("\nError on graph query $mappedGraphUri : $e \n" . $e->getMessage() . "\n");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   117
                Log::error("\nError on graph query $mappedGraphUri : $e \n" . $e->getMessage());
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   118
                exit;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   119
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   120
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   121
            $mergedGraph = null;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   122
            $doDelete = true;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   123
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   124
            if($resDocs->isEmpty()) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   125
                $mergedGraph = $mappedGraph;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   126
                $doDelete = false;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   127
            } else {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   128
                $doDelete = true;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   129
                $mappedTypes = $this->getDocTypes($mappedGraph, $mappedGraphUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   130
                $presentTypes = $this->getDocTypes($resDocs, $mappedGraphUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   131
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   132
                if($docType == "http://purl.org/dc/dcmitype/Collection" || in_array("http://purl.org/dc/dcmitype/Collection", $mappedTypes)) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   133
                    $merger = new \CorpusParole\Libraries\Mergers\CocoonCollectionRdfMerger();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   134
                    $baseGraph = $resDocs;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   135
                    $sourceGraph = $mappedGraph;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   136
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   137
                elseif ($docType == "http://purl.org/dc/dcmitype/Text") {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   138
                    $merger = new \CorpusParole\Libraries\Mergers\CocoonTextRdfMerger();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   139
                    $baseGraph = $resDocs;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   140
                    $sourceGraph = $mappedGraph;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   141
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   142
                else {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   143
                    $merger = new \CorpusParole\Libraries\Mergers\CocoonSoundRdfMerger();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   144
                    $baseGraph = $mappedGraph;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   145
                    $sourceGraph = $resDocs;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   146
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   147
                $mergedGraph = $merger->mergeGraph($baseGraph, $sourceGraph, $mappedGraphUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   148
                if(\EasyRdf\Isomorphic::isomorphic($resDocs, $mergedGraph)) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   149
                    //graph are isomorphic no need to go farther for this graph
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   150
                    Log::info("Graph are isomorphic for $mappedGraphUri, skipping");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   151
                    continue;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   152
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   153
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   154
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   155
            try {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   156
                if($doDelete) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   157
                    $this->gs->clear($mappedGraphUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   158
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   159
                $this->gs->insert($mergedGraph, $mappedGraphUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   160
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   161
            catch(\Exception $e) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   162
                // just log not much we can do here...
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   163
                $this->error("\nError on insert $mappedGraphUri : $e");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   164
                Log::error("Error on insert $mappedGraphUri : $e");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   165
                $code = $e->getCode();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   166
                $message = $e->getMessage();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   167
                if($e instanceof EasyRdf\Exception && stripos($message, 'timed out')>=0 && $insertTimeout<= ImportCocoonRDF::INSERT_TIMEOUT_RETRY) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   168
                    $this->info("\nThis is a timeout, we continue.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   169
                    Log::info("This is a timeout, we continue.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   170
                    $insertTimeouts++;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   171
                    continue;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   172
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   173
                throw $e;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   174
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   175
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   176
    }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   177
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   178
    function getModified($graph) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   179
        // get first element of array
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   180
        $providedCHORes = $graph->allOfType('http://www.europeana.eu/schemas/edm/ProvidedCHO');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   181
        $providedCHO = reset($providedCHORes);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   182
        if($providedCHO === false) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   183
            $date = new \DateTime();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   184
            $date->setTimestamp(0);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   185
            return $date;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   186
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   187
        $modified = $providedCHO->getLiteral("<http://purl.org/dc/terms/modified>");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   188
        if(is_null($modified)) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   189
            $date = new \DateTime();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   190
            $date->setTimestamp(0);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   191
            return $date;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   192
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   193
        return \DateTime::createFromFormat(\DateTime::W3C, $modified->getValue());
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   194
    }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   195
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   196
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   197
    /**
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   198
     * Execute the console command.
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   199
     *
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   200
     * @return mixed
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   201
     */
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   202
    public function fire() {
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   203
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   204
        libxml_use_internal_errors(true);
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   205
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   206
        $skip = (int)$this->option('skip');
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   207
        $raw = !$this->option('no-raw');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   208
        $rawClear = !$this->option('no-raw-clear');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   209
        $clear = $this->option('clear');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   210
        $forceImport = $this->option('force-import');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   211
        $keepRepoDoc = $this->option('keep-repo-doc');
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   212
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   213
        $this->comment("Skipping $skip records");
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   214
        $this->comment("Querying Cocoon: ".($raw?'TRUE':'FALSE'));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   215
        $this->comment("Clear raw repository: ".($rawClear?'TRUE':'FALSE'));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   216
        $this->comment("Clear repository: ".($clear?'TRUE':'FALSE'));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   217
        $this->comment("Keep existing document into repository: ".($keepRepoDoc?'TRUE':'FALSE'));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   218
        $this->comment("Overwrite more recent document:".($forceImport?'TRUE':'FALSE'));
18
f2a40bbc27f6 add rdf mapper + merger + basic database model
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
   219
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   220
        $this->gs = new \EasyRdf\Sparql\Client(Config::get('corpusparole.rdf4j_query_url'), Config::get('corpusparole.rdf4j_update_url'));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   221
        $this->gs_raw = new \EasyRdf\Sparql\Client(Config::get('corpusparole.rdf4j_query_url_raw'), Config::get('corpusparole.rdf4j_update_url_raw'));
18
f2a40bbc27f6 add rdf mapper + merger + basic database model
ymh <ymh.work@gmail.com>
parents: 4
diff changeset
   222
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   223
        $this->documentCount = [
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   224
            'all' => 0,
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   225
            'unknown' => 0,
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   226
            'error' => 0,
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   227
            'raw_duplicates' => 0,
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   228
            'modified' => 0,
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   229
            'replaced' => 0
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   230
        ];
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   231
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   232
        if($raw) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   233
            $client = new Client(Config::get('corpusparole.cocoon_oaipmh_url'));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   234
            $endpoint = new Endpoint($client);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   235
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   236
            $recs = $endpoint->listRecords('olac', null, null, 'LanguesDeFrance');
506
8a5bb4b48b85 try to solve #0025932 + try to improve indexing process reliability by retrying bnf label resolve queries
ymh <ymh.work@gmail.com>
parents: 412
diff changeset
   237
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   238
            $progressBar = $this->output->createProgressBar($recs->getTotalRecordsInCollection());
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   239
            $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   240
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   241
            $insertTimeouts = 0;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   242
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   243
            //Clear raw repository if asked
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   244
            if($rawClear) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   245
                $this->gs_raw->clear("all");
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   246
            }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   247
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   248
            foreach ($recs as $item) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   249
                $item->registerXPathNamespace('oai', "http://www.openarchives.org/OAI/2.0/");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   250
                $identifier = (string) $item->xpath('oai:header/oai:identifier')[0];
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   251
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   252
                $docRdfUrl = Config::get('corpusparole.cocoon_rdf_base_uri').substr($identifier, strlen(Config::get('corpusparole.cocoon_doc_id_base')));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   253
                $message = "$identifier : $docRdfUrl";
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   254
                if($recs->getNumRetrieved() <= $skip) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   255
                    $progressBar->setMessage("$message - Skipping");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   256
                    $progressBar->advance();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   257
                    continue;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   258
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   259
                $progressBar->setMessage($message);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   260
                $progressBar->advance();
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   261
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   262
                $docUri = config('corpusparole.cocoon_doc_id_base_uri').substr($identifier, strlen(Config::get('corpusparole.cocoon_doc_id_base')));
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   263
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   264
                $docLoaded = false;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   265
                $loadRetry = 0;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   266
                $doc = null;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   267
                while(!$docLoaded && $loadRetry < config('corpusparole.max_load_retry', 3)) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   268
                    $loadRetry++;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   269
                    try {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   270
                        $doc = new \EasyRdf\Graph($docRdfUrl);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   271
                        $doc->load();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   272
                        $docLoaded = true;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   273
                    }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   274
                    //TODO: catch network exception - add error to database
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   275
                    catch(\Exception $e) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   276
                        $code = $e->getCode();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   277
                        $message = $e->getMessage();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   278
                        $this->info("\nError processing $identifier. code : $code, message: $message");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   279
                        Log::debug("Error processing $identifier. code : $code, message: $message");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   280
                        if($code == 400 || ($code == 0 && stripos($message, 'timed out')>=0) ) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   281
                            $this->info("\nTimeout error processing $identifier ($docRdfUrl) : $e, retrying");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   282
                            Log::warning("Timeout error processing $identifier ($docRdfUrl) : $e, retrying");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   283
                            continue;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   284
                        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   285
                        else {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   286
                            $this->error("\nError processing $identifier ($docRdfUrl) : $e");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   287
                            Log::error("Error processing $identifier ($docRdfUrl) : $e");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   288
                            break;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   289
                        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   290
                        //$this->error(print_r($e->getTraceAsString(),true));
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   291
                    }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   292
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   293
                if(!$docLoaded) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   294
                    $this->documentCount['error'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   295
                    continue;
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   296
                }
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   297
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   298
                $resDocsRaw = $this->gs_raw->query("ASK WHERE { GRAPH <$docUri> { ?s ?p ?o }}");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   299
                if($resDocsRaw->getBoolean()) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   300
                    $this->gs_raw->clear($docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   301
                    $this->documentCount['raw_duplicates'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   302
                }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   303
                $this->gs_raw->insert($doc, $docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   304
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   305
            $progressBar->setMessage("finished raw import");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   306
            $progressBar->finish();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   307
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   308
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   309
        if($clear) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   310
            $this->gs->clear("all");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   311
        }
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   312
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   313
        $collectionDocsUris = $this->gs_raw->query("SELECT distinct ?uri WHERE {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   314
            GRAPH ?uri {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   315
                ?s <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Collection>.
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   316
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   317
        }");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   318
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   319
        $collectionCount = count($collectionDocsUris);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   320
        $this->info("\nImporting $collectionCount Collections from raw repository");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   321
        $progressBar = $this->output->createProgressBar($collectionCount);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   322
        $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   323
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   324
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   325
        foreach($collectionDocsUris as $docUriRes) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   326
            $docUri = $docUriRes->uri->getUri();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   327
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   328
            $progressBar->setMessage("Importing collection $docUri.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   329
            $progressBar->advance();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   330
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   331
            $doc = $this->gs_raw->query("CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$docUri> { ?s ?p ?o. }}");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   332
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   333
            //map the doc
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   334
            list($docType, $mappedGraphes) = $this->mapDoc($doc, $docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   335
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   336
            //merge the result docs
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   337
            $this->mergeDocs($docType, $mappedGraphes);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   338
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   339
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   340
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   341
        $progressBar->setMessage("finished raw import for collections.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   342
        $progressBar->finish();
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   343
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   344
        // list the existing documents
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   345
        $providedCHODocsUris = [];
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   346
        $providedCHODocsUrisRes = $this->gs->query("SELECT distinct ?uri WHERE {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   347
            GRAPH ?uri {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   348
                ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.europeana.eu/schemas/edm/ProvidedCHO>.
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   349
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   350
        }");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   351
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   352
        foreach($providedCHODocsUrisRes as $docUriRes) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   353
            array_push($providedCHODocsUris, $docUriRes->uri->getUri());
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   354
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   355
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   356
        $this->info("\n\nWe have ".count($providedCHODocsUris)." providedCHO in database.\n");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   357
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   358
        $soundDocsUris = $this->gs_raw->query("SELECT distinct ?uri WHERE {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   359
            GRAPH ?uri {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   360
                ?s <http://purl.org/dc/elements/1.1/type> ?o.
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   361
                FILTER(?o IN (<http://purl.org/dc/dcmitype/Sound>, <http://purl.org/dc/dcmitype/MovingImage>))
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   362
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   363
        }");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   364
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   365
        $soundCount = count($soundDocsUris);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   366
        $this->info("\nImporting $soundCount Sound (or Moving Image) from raw repository\n");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   367
        $progressBar = $this->output->createProgressBar($soundCount);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   368
        $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   369
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   370
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   371
        foreach($soundDocsUris as $docUriRes) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   372
            $docUri = $docUriRes->uri->getUri();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   373
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   374
            $progressBar->setMessage("Importing Sound (or Moving Image) $docUri.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   375
            $progressBar->advance();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   376
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   377
            $doc = $this->gs_raw->query("CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$docUri> { ?s ?p ?o. }}");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   378
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   379
            //map the doc
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   380
            list($docType, $mappedGraphes) = $this->mapDoc($doc, $docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   381
            $firstGraph = reset($mappedGraphes); // first graph is main graph
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   382
            // remove it from list of existing graphes in repository
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   383
            $firstGraphUri = $firstGraph->getUri();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   384
            if(($key = array_search($firstGraphUri, $providedCHODocsUris)) !== false) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   385
               unset($providedCHODocsUris[$key]);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   386
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   387
            //if asked, delete it from repository. check modified date
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   388
            //merge the result docs
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   389
            try {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   390
                $resDocs = $this->gs->query("CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$firstGraphUri> { ?s ?p ?o }}");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   391
            } catch (\Exception $e) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   392
                $this->error("\nError on graph query $firstGraphUri : $e \n" . $e->getMessage() . "\n");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   393
                Log::error("\nError on graph query $firstGraphUri : $e \n" . $e->getMessage());
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   394
                exit;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   395
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   396
            $doDelete = true;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   397
            if($resDocs->isEmpty()) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   398
                $doDelete = false;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   399
            } else {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   400
                // get modified from repo
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   401
                $dateRepo = $this->getModified($resDocs);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   402
                // get modified from import
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   403
                $dateImport = $this->getModified($firstGraph);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   404
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   405
                if($dateRepo > $dateImport) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   406
                    $this->documentCount['modified'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   407
                    $doDelete = $forceImport;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   408
                } else {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   409
                    $doDelete = !$keepRepoDoc;
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   410
                }
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   411
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   412
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   413
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   414
            if($doDelete) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   415
                $this->documentCount['replaced'] += 1;
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   416
                $this->gs->clear($firstGraphUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   417
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   418
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   419
            $this->mergeDocs($docType, $mappedGraphes);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   420
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   421
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   422
        $progressBar->setMessage("finished raw import for sounds.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   423
        $progressBar->finish();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   424
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   425
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   426
        $textDocsUris = $this->gs_raw->query("SELECT distinct ?uri WHERE {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   427
            GRAPH ?uri {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   428
                ?s <http://purl.org/dc/elements/1.1/type> <http://purl.org/dc/dcmitype/Text>.
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   429
            }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   430
        }");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   431
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   432
        $textCount = count($textDocsUris);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   433
        $this->info("\n\nImporting $textCount text from raw repository\n");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   434
        $progressBar = $this->output->createProgressBar($textCount);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   435
        $progressBar->setFormat(' %current%/%max% [%bar%] %percent:3s%% - %message%');
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   436
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   437
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   438
        foreach($textDocsUris as $docUriRes) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   439
            $docUri = $docUriRes->uri->getUri();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   440
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   441
            $progressBar->setMessage("Importing Text $docUri.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   442
            $progressBar->advance();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   443
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   444
            $doc = $this->gs_raw->query("CONSTRUCT { ?s ?p ?o } WHERE { GRAPH <$docUri> { ?s ?p ?o. }}");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   445
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   446
            //map the doc
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   447
            list($docType, $mappedGraphes) = $this->mapDoc($doc, $docUri);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   448
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   449
            //merge the result docs
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   450
            $this->mergeDocs($docType, $mappedGraphes);
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   451
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   452
        }
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   453
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   454
        $progressBar->setMessage("finished raw import for text.");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   455
        $progressBar->finish();
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   456
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   457
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   458
        // delete left overs from previous repository
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   459
        $this->info("\n\nThere is ".count($providedCHODocsUris)." documents left-over.\n");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   460
        if(count($providedCHODocsUris) > 0 && $delete_old) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   461
            foreach($providedCHODocsUris as $graphUri) {
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   462
                $this->gs->clear($graphUri);
4
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   463
            }
f55970e41793 first skeleton of bo client in ember
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
   464
        }
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   465
508
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   466
        $this->info("\n\nDocument count info: ");
2cb514f10a72 Improve RDF import
ymh <ymh.work@gmail.com>
parents: 506
diff changeset
   467
        foreach ($this->documentCount as $docType => $docCount) {
172
660570f13537 Add error counter to importRDF command + retry on code 400 for sparql download
ymh <ymh.work@gmail.com>
parents: 118
diff changeset
   468
            if($docType == 'error' && $docCount > 0) {
660570f13537 Add error counter to importRDF command + retry on code 400 for sparql download
ymh <ymh.work@gmail.com>
parents: 118
diff changeset
   469
                $this->error("$docType => $docCount");
660570f13537 Add error counter to importRDF command + retry on code 400 for sparql download
ymh <ymh.work@gmail.com>
parents: 118
diff changeset
   470
            } else {
660570f13537 Add error counter to importRDF command + retry on code 400 for sparql download
ymh <ymh.work@gmail.com>
parents: 118
diff changeset
   471
                $this->info("$docType => $docCount");
660570f13537 Add error counter to importRDF command + retry on code 400 for sparql download
ymh <ymh.work@gmail.com>
parents: 118
diff changeset
   472
            }
19
eadaf0b8f02e Bo conception step. back to ember page
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   473
        }
2
00e2916104fe Migrate to php 5.6 + Laravel 5.1 + add phpunit test
ymh <ymh.work@gmail.com>
parents: 1
diff changeset
   474
    }
1
01a844d292ac dev environment + first skeleton for bo
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
}