2013-08-01 2 views
0

Я создаю небольшое приложение Node, которое запрашивает локальный n3-тройной файл и использует rdfstore-js. У меня все работает нормально с примером, который использует документация, но это удаленный трехместный магазин. Документация вводит в заблуждение относительно того, какие параметры необходимо передать в rdfstore.create() для локального файла. Может, что-то вроде этого?rdfstore-js создать/загрузить локальный файл

rdfstore.create(function(store) { 
    store.execute('LOAD /Users/Ben/Desktop/MET/triple_SPARQL/triples.n3 text/n3 ',  function() { 

    }); 
}) 

Кто-нибудь пользовался rdfstore-js и загружался в локальные файлы?

Спасибо!

ответ

0

От взгляда на исходный код rdfstore-js, похоже, не поддерживает загрузку локальных файлов, на которые ссылаются обновления SPARQL (например: LOAD <file:///myfile.ttl>). Однако, вы можете прочитать файл самостоятельно и передавать данные непосредственно:

var rdfstore = require('rdfstore') 
, fs = require('fs'); 

rdfstore.create(function(store){ 
    var rdf = fs.readFileSync('/var/foo/bar.ttl').toString(); 
    store.load('text/turtle', rdf, function(s,d){ 
    console.log(s,d); 
    store.execute("SELECT * WHERE { ?s ?p ?o } LIMIT 10", function(success, results){ 
     console.log(success, results); 
    }); 
    }); 
}); 
0

Вот мой пример кода, который позволяет загрузить файл в Node.js, используя путь к файлу (здесь варианты. путь может быть /uploads/123.owl)

rdfstore.create(function(err, store) {  
     if (err) 
      console.log("There was an error creating the store", err);      
     else  
     { 
      //replace/with \ 
      var syncPath = __dirname + options.path;  //local but not enough 
      var re = new RegExp('/', 'g'); 
      syncPath = syncPath.replace(re, '\\'); //update path   

      //set full path from filesystem of the ontology   
      var ontology = fs.readFileSync(__dirname + options.path).toString(); 

         //LOCAL 
        store.load("application/ld+json" , ontology, "graph", function(err, results) {   

         if (err) 
          console.log("There was an error loading the store", err); 
         else 
         { 
          store.graph("graph", function(err, graph) { 

          if (err) 
          { 
           console.log("There was an error creating the graph", err); 
          } 
          else 
          { 
           var triples = graph.toArray(); 
           console.log("Constructing triples sync... "); 
           console.log("There are ", triples.length, "triples"); 

           if (triples.length !== 0) 
           {     
            cb(triples);         }  
          } 

          }); //graph        
         } 
        }); 

        store.close(); //done 
     }//err 
Смежные вопросы