Skip to content

Rosetta

Rosetta, inspired by the Rosetta Stone, transforms e.g. between:

Specifying the --schema flag is optional for YAML <=> JSON conversion, but required for TextProto.

Graph Diagrams

Enola can generate Graph Diagrams like this, through DocGen (see Tutorial), or Rosetta.

Graphviz

Similarly to e.g. rdflib’s rdf2dot (and rdfs2dot):

$ ./enola rosetta --in test/picasso.ttl --out "docs/BUILT/picasso.gv?full=true" && dot -Tsvg -O docs/BUILT/picasso.gv

produces picasso.gv and picasso.gv.svg:

Graph of Painters

The full URL query string can be used to control appearance, and --no-file-loader suppresses the file; see:

$ ./enola rosetta --no-file-loader --in test/picasso.ttl --out "docs/BUILT/picasso-small.gv?full=false" && dot -Tsvg -O docs/BUILT/picasso-small.gv

Smaller Graph of Painters

GEXF

$ ./enola rosetta --in test/picasso.ttl --out docs/BUILT/picasso.gexf

produces picasso.gexf in GEXF format, which can be opened e.g. in Gephi Lite.

Tika

See here!

YAML to JSON

$ ./enola rosetta --in test/picasso.yaml --out /tmp/picasso.json

Turtle 🐒 to JSON-LD πŸ”—

$ ./enola rosetta --in test/picasso.ttl --out picasso.jsonld

JSON & YAML to Turtle 🐒 via JSON-LD

See JSON-LD.

XML

$ ./enola rosetta --in test/greeting1-nested.xml --out="fd:1?mediaType=text/turtle"
@prefix calibre: <http://calibre.kovidgoyal.net/2009/metadata> .
@prefix marc: <http://id.loc.gov/vocabulary/> .
@prefix epubsc: <http://idpf.org/epub/vocab/sc/#> .
@prefix Iptc4xmpCore: <http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/> .
@prefix crs: <http://ns.adobe.com/camera-raw-settings/1.0/> .
@prefix exif: <http://ns.adobe.com/exif/1.0/> .
@prefix pdf: <http://ns.adobe.com/pdf/1.3/> .
@prefix photoshop: <http://ns.adobe.com/photoshop/1.0/> .
@prefix tiff: <http://ns.adobe.com/tiff/1.0/> .
@prefix xmp: <http://ns.adobe.com/xap/1.0/> .
@prefix xmpBJ: <http://ns.adobe.com/xap/1.0/bj/> .
@prefix xmpMM: <http://ns.adobe.com/xap/1.0/mm/> .
@prefix xmpRights: <http://ns.adobe.com/xap/1.0/rights/> .
@prefix xmpDM: <http://ns.adobe.com/xmp/1.0/DynamicMedia/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix onix: <http://www.editeur.org/ONIX/book/codelists/current.html#> .
@prefix opf: <http://www.idpf.org/2007/opf#> .
@prefix epub: <http://www.idpf.org/2007/ops#> .
@prefix media: <http://www.idpf.org/epub/vocab/overlays/#> .
@prefix a11y: <http://www.idpf.org/epub/vocab/package/a11y/#> .
@prefix msv: <http://www.idpf.org/epub/vocab/structure/magazine/#> .
@prefix rendition: <http://www.idpf.org/vocab/rendition/#> .
@prefix prism: <http://www.prismstandard.org/specifications/3.0/PRISM_CV_Spec_3.0.htm#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xhtml: <http://www.w3.org/1999/xhtml/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xmpTPg: <https://developer.adobe.com/xmp/docs/XMPNamespaces/xmpTPg/> .
@prefix enola: <https://enola.dev/> .
@prefix ex: <https://example.org/> .
@prefix schema: <https://schema.org/> .

<file:/home/runner/work/enola/enola/test/greeting1-nested.xml> ex:greeting1 [
      ex:message "hello, world"
    ] .

Turtle 🐒 to Things ⛓️

$ ./enola rosetta --in test/picasso.ttl --out picasso.thing.yaml

UTF-8 to ISO 8859-1

$ file docs/use/rosetta/hello.txt
docs/use/rosetta/hello.txt: Unicode text, UTF-8 text
$ cat docs/use/rosetta/hello.txt
hello, wΓΆrld πŸ˜„
$ ./enola rosetta --in 'docs/use/rosetta/hello.txt?charset=UTF-8' --out '/tmp/hello-windows.txt?charset=ISO-8859-1'
$ file /tmp/hello-windows.txt
/tmp/hello-windows.txt: ISO-8859 text
$ cat /tmp/hello-windows.txt
hello, wοΏ½rld ?