Re: 🚀 graphy.js - High Performance API and CLI - Major Release v4.0.0 🎉

Hi Blake,

Great work on this!
Graphy is definitely a big next step towards improved RDF development in JavaScript.

Do you have any plans for adding TypeScript support?
For a library of this size, such typings would be very valuable for developers that want to use it.
It would greatly reduce API discovery effort, and move usage errors from runtime to compile time.

Kind regards,
Ruben Taelman

On 11 December 2019 at 20:28:56, Blake Regalia (blake.regalia@gmail.com) wrote:

[Crossposted to Semantic Web and RDFJS mailing lists]

Dear all, I am pleased to announce a new major release of graphy, a collection of high-performance RDF libraries for JavaScript developers, see benchmarks here.

Available on npm, graphy also ships a powerful command-line interface for manipulating RDF data using limits, filters, transforms, unions, diffs, and many more.

    Comparison to N3.js: graphy covers many of the same functionalities as N3.js (including N-Triples, N-Quads, Turtle and TriG streaming and non-streaming readers and writers, RDFJS Data Factory and Dataset), but graphy outperforms N3.js in all of these categories. One feature that graphy currently lacks however is a parser for the N3 language.

More information at  https://graphy.link/   and  https://github.com/blake-regalia/graphy.js


This update brings many new features to all the packages, with some necessary breaking changes, several fixes to the readers and writers, and performance improvements across the board. See CHANGELOG.

Some CLI examples (see documentation here for more):

1) Count the number of distinct triples in a Turtle file:
$ graphy read -c ttl / distinct --triples   < input.ttl

2) Count the number of distinct subjects that are of type dbo:Place in an N-Quads file:
$ graphy read -c nq / filter -x '; a; dbo:Place' / distinct --subjects   < places.nq

3) Compute the difference between two RDF datasets 'a.trig' and 'b.trig':
$ graphy read / diff / write  --inputs a.trig b.trig   > diff.trig

4) Compute the canonicalized union of a bunch of RDF datasets in the 'data/' directory:
$ graphy read / union / write   --inputs data/*.{nt,nq,ttl,trig}   > output.trig

5) Extract the first 2 million quads of a Turtle file:
$ graphy read -c ttl / head 2e6 / write -c ttl  < in.ttl  > view-2M.ttl

6) Materialize the inverse relations for all triples with the owl:sameAs predicate, but only where the object is a node and different from the subject:
$ graphy read / filter -x '!$object; owl:sameAs; {node}' / transform -j  't => [t.o, t.p, t.s]' / write -c ttl   < input.ttl   > output.ttl



 - Blake Regalia

Received on Thursday, 12 December 2019 07:54:52 UTC