1
2
3 __docformat__ = 'epytext en'
4 __all__ = ['AtomGraph']
5
6 from igraph import Graph
7
10 feed.ownerDocument.xmlns_prefixes[u'app'] = u"http://www.w3.org/2007/app"
11 feed.ownerDocument.xmlns_prefixes[u'atom'] = u"http://www.w3.org/2005/Atom"
12
13 g = Graph()
14 g.add_vertices(len(feed.entry)-1)
15
16 entries = iter(feed.entry)
17 entry_ids = []
18 for v in g.vs:
19 entry = entries.next()
20 entry_ids.append(unicode(entry.id))
21 v['name'] = str(entry.id)
22
23 for strategy in strategies:
24 matrix = strategy.run(entry_ids, feed)
25 g.add_edges(matrix)
26
27 return g
28 process = staticmethod(process)
29
30 if __name__ == '__main__':
31 import amara
32
33 from amplee.graph.strategy.related import RelatedStrategy
34 g = AtomGraph.process(amara.parse('wikipedia_related_feed.atom').feed,
35 [RelatedStrategy])
36
37 g.write_svg('/tmp/graph.svg', 'kamada_kawai', labels='name',
38 width=800, height=800, vertex_size=2)
39