Virtuoso Wiki Web

  • Topic
  • Discussion
  • VirtuosoWikiWeb.LoadGeonamesRDFDumpIntoVirtuoso(Last) -- Owiki? , 2016-08-19 15:01:34 Edit owiki 2016-08-19 15:01:34

    RDF Data Access & Management

    Load Geonames RDF dump into Virtuoso

    The following Virtuoso procedure may be used to load the Geonames RDF dump, thus provided that the dump persists in its current format :

    create procedure DB.DBA.import_geonames_dataset(in rdfdump_path  
    varchar, in graph_uri varchar)
    {
       declare rdfdump_str, line, nb_processed, process_records, msg_str  
    any;
         declare exit handler for sqlstate '2200*'
       {
           goto znext;
       };        rdfdump_str := file_to_string_output(rdfdump_path);
         nb_processed := 0;
         line := ses_read_line(rdfdump_str); -- URL line
    
       while(isstring(line))
       {
           nb_processed := nb_processed + 1;
    
           if(mod(nb_processed, 1000) = 0)
           {
               result_names(line);
               result(line);
           }
                 if(mod(nb_processed, 50000) = 0)
           {
               result_names(msg_str);
               msg_str := 'Checkpoint in progress...';
               result(msg_str);
                         exec('checkpoint');
                         msg_str := 'Checkpoint in finished';
               result_names(msg_str);
               result(msg_str);
           }
                 line := ses_read_line(rdfdump_str); -- RDF document line
                 DB.DBA.RDF_LOAD_RDFXML(line, graph_uri, graph_uri);
    	     znext:;
                 line := ses_read_line(rdfdump_str); -- skip: URL line
       }
    };
    
    DB.DBA.import_geonames_dataset('/dbs/rdfdata/rdfdumps/geonames/all- 
    geonames-rdf.txt', 'http://geonames.org');