Skip to content
Snippets Groups Projects
Select Git revision
  • 14ee631ffc1415e2e26493fce2f8640b4f368520
  • demo_ci_gitlab_pages default
  • demo_gitlab_ci
  • 5-images-in-annotations
  • 5-final-images
  • 5-chpk-images-in-annot
  • tetras-main protected
  • 5-rebase-images-in-annot
  • 5-wip-images-in-annot
  • tmp
  • 1-edit-annotations-on-videos
  • 5-old-images-in-annotations
  • old_demo_ci_gitlab_pages
  • images_annotations
  • wip
  • devsetup
  • wip-annot-video-ui
  • wip-annotations-on-videos
  • master
  • v0.4.0_react16
  • wip-debugging-annotations
21 results

TextEditor.js

Blame
  • Forked from IIIF / Mirador / Mirador annotations
    Source project has a limited visibility.
    unlizeXmlNbSample.ipynb 3.49 KiB
    In [1]:
    import tempfile
    import os
    import re
    from subprocess import Popen, PIPE, STDOUT
    from IPython.core.display import SVG
    def unl2dot(text, path):
        with tempfile.NamedTemporaryFile() as temp:
            out_name = os.path.basename(temp.name)
            out_dir = os.path.dirname(temp.name)
    
        with tempfile.NamedTemporaryFile(mode="w") as in_file:
            # Remove CRLF and flush output to avoid java errors
            in_file.write(text.replace("\r\n", "\n"))
            in_file.flush()
    
            # Run java parser
            cmd = ['java', '-jar', path,
                   '--input-file', in_file.name,
                   '--output-Dir', out_dir, '--output-file', out_name,
                   '--output-type', 'dot']
    
            with Popen(cmd, stdout=PIPE, stderr=STDOUT) as p:
                p.wait()
                p.stdout.flush()
                if p.returncode != 0:
                    print("Error in unl2rdf: \n\n"+p.stdout.read().decode())
                    print('UNL;')
                    print(text)
    
        # generate dot output
        fname = '{}/{}.dot'.format(out_dir, out_name)
        cmd = ['dot', '-Tsvg', fname]
        with Popen(cmd, stdout=PIPE, stderr=PIPE) as p:
            p.wait()
            if p.returncode != 0:
                print("Error creating svg: \n\n"+p.stderr.read().decode())
                print('UNL:')
                print(text)
                try:
                    with open(fname) as f:
                        print('DOT:')
                        print(f.read())
                except FileNotFoundError:
                    pass
            else:
                svg = p.stdout.read().decode()
                os.remove(fname)
                return svg
        return ""
    
    
    def displayUnl(unldata) :
    # We generate protoSVG because whent there are several sentences, 
    # a string composed of several concatenated SVG is produced (not a valid SVG).
    # We must then split the string to obtain several valid SVG to display.
        protoSvg = unl2dot(unldata, "unl2rdf-app-1.0-SNAPSHOT-jar-with-dependencies.jar")
        sep = "</svg>\n"
        svgArray = [x+sep for x in protoSvg.split(sep)]
        svgArray.pop()
        for svg in svgArray :
            text = re.search('\{org.*\n(.*)\n.*org\}',unldata).group(1)
            print(text)
            display(SVG(svg))