import sys import string import textwrap def run(inputName, outputName): print "Opening: ", inputName input = open(inputName, "r") output = open(outputName, "w") output.write("digraph ris{\n rankdir=LR;\n") authors = set() title = None id = None for line in input: line = line.strip() if len(line) > 0: code = line[0:2] if code == "L3": id = line[27:] # format is: L3 - citeulike-article-id:3936772 if code == "TI": title = line[6:] elif code =="AU" or code=="A2": authors.add(line[6:]) else: if title: authors.discard("European") output.write("%s [label=\"%s\", shape=box];\n" % (id, string.join(textwrap.wrap(title,20), "\\n"))) for author in authors: comaPos = author.find(",") if comaPos > -1: author = author[0:comaPos+3] output.write("%s -> \"%s\";\n" % (id, author)) title = None authors = set() output.write("}\n") input.close() output.close() if __name__ == "__main__": print "hello" if len(sys.argv)>2: inputName = sys.argv[1] outputName = sys.argv[2] else: inputName = "C:\\Projects\\PaperViz\\arafalov.ris" outputName = "C:\\Projects\\PaperViz\\output.dot" run(inputName, outputName) print "DONE!"