diff --git a/experimental/transitive-queries/generate-ttl.py b/experimental/transitive-queries/generate-ttl.py new file mode 100755 index 0000000000000000000000000000000000000000..a3b00f636b1ecd0d22018dcbf43bc1c7d548fef2 --- /dev/null +++ b/experimental/transitive-queries/generate-ttl.py @@ -0,0 +1,49 @@ +#! /usr/bin/env python3 + + +from typing import List + + +NS = 'http://example.org/rdf/' +PREDICATE = '<http://example.org/rdf/has_edge_to>' + + +class Node: + def __init__(self, name: str, children=[]): + self.name = name + self.children = children + + def to_rdf(self) -> str: + rdf = '' + + for child in self.children: + rdf += self.rdf_uri() + '\n' + rdf += ' ' + PREDICATE + '\n' + rdf += ' ' + child.rdf_uri() + ' .' + '\n\n' + + rdf += child.to_rdf() + + return rdf + + def rdf_uri(self) -> str: + return '<%s%s>' % (NS, self.name) + + +def main(): + C = Node('C') + D = Node('D') + B = Node('B', [C, D]) + G = Node('G') + F = Node('F', [G]) + E = Node('E', [F]) + A = Node('A', [B, E]) + + rdf = A.to_rdf() + print(rdf) + + +if __name__ == '__main__': + try: + main() + except (KeyboardInterrupt, SystemExit, BrokenPipeError): + pass