Rdflib.js, как сериализовать данные в формат черепахи (.ttl)?

Как я могу сериализовать RDF в черепахе, используя rdflib.js? Документации не так много. Я могу использовать:

Serializer.statementsToN3(destination);

для сериализации в формат N3, но не более того. Я пытался изменить вышеупомянутую команду, чтобы она наполнялась операторамиToTtl/Turtle/TURTLE/TTL, но, похоже, ничего не работает.


person Fox    schedule 18.03.2016    source источник


Ответы (1)


Догадаться. Предоставлено этот (секретный) гитхаб.

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

Это код из вышеупомянутого Github gist.

/**
* 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);
    });
});
});
person Fox    schedule 19.03.2016
comment
На практике большинство библиотек, которые записываются как N3, на самом деле нацелены на черепаху (которая является подмножеством N3). если вы используете операторы ToN3, вы, вероятно, получаете Turtle на практике. - person Joshua Taylor; 19.03.2016
comment
Не могли бы вы обнародовать эту суть? Поскольку это секрет, кажется, что для доступа к нему у вас должна быть учетная запись github. Еще лучше было бы вставить код в свой ответ. - person Joshua Taylor; 19.03.2016