2016-03-18 6 views
1

rdflib.jsを使用してタートルでRDFをシリアル化するにはどうすればよいですか?多くのドキュメントはありません。私は使用することができます: Rdflib.js、データをカメ(.ttl)形式にシリアル化する方法は?

Serializer.statementsToN3(destination); 
N3形式にシリアライズするだけでなく、それ以外にも。私は前述のコマンドをstatementsToTtl/Turtle/TURTLE/TTLのようなものに変更しようとしましたが、何も動作していないようです。

答えて

1

礼儀this (secret) Github gist

$rdf.serialize(undefined, source, undefined,` 'text/turtle', function(err, str){ 
// do whatever you want, the data is in the str variable. 
}) 

これは、前述のGithub要旨のコードです。

/** 
* rdflib.js with node.js -- basic RDF API example. 
* @author ckristo 
*/ 

var fs = require('fs'); 
var $rdf = require('rdflib'); 

FOAF = $rdf.Namespace('http://xmlns.com/foaf/0.1/'); 
XSD = $rdf.Namespace('http://www.w3.org/2001/XMLSchema#'); 

// - create an empty store 
var kb = new $rdf.IndexedFormula(); 

// - load RDF file 
fs.readFile('foaf.rdf', function (err, data) { 
if (err) { /* error handling */ } 

// NOTE: to get rdflib.js' RDF/XML parser to work with node.js, 
// see https://github.com/linkeddata/rdflib.js/issues/47 

// - parse RDF/XML file 
$rdf.parse(data.toString(), kb, 'foaf.rdf', 'application/rdf+xml', function(err, kb) { 
    if (err) { /* error handling */ } 

    var me = kb.sym('http://kindl.io/christoph/foaf.rdf#me'); 

    // - add new properties 
    kb.add(me, FOAF('mbox'), kb.sym('mailto:[email protected]')); 
    kb.add(me, FOAF('nick'), 'ckristo'); 

    // - alter existing statement 
    kb.removeMany(me, FOAF('age')); 
    kb.add(me, FOAF('age'), kb.literal(25, null, XSD('integer'))); 

    // - find some existing statements and iterate over them 
    var statements = kb.statementsMatching(me, FOAF('mbox')); 
    statements.forEach(function(statement) { 
     console.log(statement.object.uri); 
    }); 

    // - delete some statements 
    kb.removeMany(me, FOAF('mbox')); 

    // - print modified RDF document 
    $rdf.serialize(undefined, kb, undefined, 'application/rdf+xml', function(err, str) { 
     console.log(str); 
    }); 
}); 
}); 
+0

実際には、「N3」と記述するほとんどのライブラリは、実際にはカメ(N3のサブセット)をターゲットにしています。 statementsToN3を使用すると、あなたはおそらく実際にカメになっているでしょう。 –

+0

また、この問題が解決した場合は、回答を受け入れたものとしてマークしてください。 –

+0

その要点を公開できますか?それは秘密だから、アクセスするにはgithubアカウントを持っていなければならないようだ。あなたの答えにコードをペイトする方が良いでしょう。 –

関連する問題