comp-think / 2018-2019

The GitHub repository containing all the material related to the Computational Thinking and Programming course of the Digital Humanities and Digital Knowledge degree at the University of Bologna (a.a. 2018/2019).
Other
30 stars 8 forks source link

Lecture "Organising information: graphs", exercise 1 #31

Open essepuntato opened 5 years ago

essepuntato commented 5 years ago

Consider the list of co-authors of Tim Berners-Lee as illustrated in the write box at http://dblp.uni-trier.de/pers/hd/b/Berners=Lee:Tim. Build an undirected graph that contains Tim Berners Lee as the central node and that is linked to other five nodes representing his top-five co-authors. In addition, specify the weight of each edge as an attribute, where the value of the weight is the number of bibliographic resources (articles, proceedings, etc.) Tim Berners-Lee has co-authored with the person linked by that edge.

SeverinJB commented 5 years ago
from networkx import MultiGraph

network_tim = MultiGraph()

network_tim.add_node("Tim Berners-Lee")
network_tim.add_node("Christian Bizer")
network_tim.add_node("Tom Heath")
network_tim.add_node("Sören Auer")
network_tim.add_node("Lalana Kagal")
network_tim.add_node("James A. Hendler")
network_tim.add_node("Daniel J. Weitzner")

network_tim.add_edge("Tim Berners-Lee", "Christian Bizer", weight=17)
network_tim.add_edge("Tim Berners-Lee", "Tom Heath", weight=17)
network_tim.add_edge("Tim Berners-Lee", "Sören Auer", weight=10)
network_tim.add_edge("Tim Berners-Lee", "Lalana Kagal", weight=9)
network_tim.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)
network_tim.add_edge("Tim Berners-Lee", "Daniel J. Weitzner", weight=8)

print(network_tim.nodes(data=True))
print(network_tim.edges(data=True))
EleonoraPeruch commented 5 years ago
from networkx import Graph

# top five co-authors of Tim Berners-Lee
# Christian Bizer (17)
# Tom Heath (17)
# Sören Auer (10)
# Lalana Kagal (9)
# James A. Hendler (8)

# create a new graph
tim_berners_lee = Graph()

# create six nodes
tim_berners_lee.add_node("Tim Berners-Lee")
tim_berners_lee.add_node("Christian Bizer")
tim_berners_lee.add_node("Tom Heath")
tim_berners_lee.add_node("Sören Auer")
tim_berners_lee.add_node("Lalana Kagal")
tim_berners_lee.add_node("James A. Hendler")

# create five edges
tim_berners_lee.add_edge("Tim Berners-Lee", "Christian Bizer", weight=17)
tim_berners_lee.add_edge("Tim Berners-Lee", "Tom Heath", weight=17)
tim_berners_lee.add_edge("Tim Berners-Lee", "Sören Auer", weight=10)
tim_berners_lee.add_edge("Tim Berners-Lee", "Lalana Kagal", weight=9)
tim_berners_lee.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)

print(tim_berners_lee.nodes(data=True))
print(tim_berners_lee.edges(data=True))

[('Tim Berners-Lee', {}), ('Christian Bizer', {}), ('Tom Heath', {}), ('Sören Auer', {}), ('Lalana Kagal', {}), ('James A. Hendler', {})]
[('Tim Berners-Lee', 'Christian Bizer', {'weight': 17}), ('Tim Berners-Lee', 'Tom Heath', {'weight': 17}), ('Tim Berners-Lee', 'Sören Auer', {'weight': 10}), ('Tim Berners-Lee', 'Lalana Kagal', {'weight': 9}), ('Tim Berners-Lee', 'James A. Hendler', {'weight': 8})]
friendlynihilist commented 5 years ago
from networkx import Graph
cs_bib = Graph()

#add nodes
cs_bib.add_node("Tim Berners-Lee")
cs_bib.add_node("Christian Bizer")
cs_bib.add_node("Tom Heath")
cs_bib.add_node("Sören Auer")
cs_bib.add_node("Lalana Kagal")
cs_bib.add_node("James A. Hendler")

#add edges with 'weight' attribute
cs_bib.add_edge("Tim Berners-Lee", "Christian Bizer", weight=17)
cs_bib.add_edge("Tim Berners-Lee", "Tom Heath", weight=17)
cs_bib.add_edge("Tim Berners-Lee", "Sören Auer", weight=10)
cs_bib.add_edge("Tim Berners-Lee", "Lalana Kagal", weight=9)
cs_bib.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)

print(cs_bib.nodes(data=True))
print(cs_bib.edges(data=True))

#memo:
#tim berners-lee
#christian bizer 17
#tom heath 17
#sören auer 10
#lalana kagal 9
#james a. hendler 8
andreamust commented 5 years ago

from networkx import Graph

my_graph = Graph()

my_graph.add_node(1, name = "Tim", surname = "Berners-Lee")
my_graph.add_node(2, name = "Tom", surname = "Heat")
my_graph.add_node(3, name = "Christian", surname = "Bizer")
my_graph.add_node(4, name = "Soren", surname = "Auer")
my_graph.add_node(5, name = "Lalana", surname = "Kagal")
my_graph.add_node(6, name = "Daniel J.", surname = "Weitzner")

my_graph.add_edge(1, 2, weight = 17)
my_graph.add_edge(1, 3, weight = 17)
my_graph.add_edge(1, 4, weight = 10)
my_graph.add_edge(1, 5, weight = 9)
my_graph.add_edge(1, 6, weight = 8)

print(my_graph.nodes(data=True))
print(my_graph.edges(data=True))
saraarmaroli commented 5 years ago
from networkx import Graph

tim_berners_graph = MultiGraph()
tim_berners_graph.add_node("Tim Berners Lee")
tim_berners_graph.add_node("Christian Bizer")
tim_berners_graph.add_node("Tom Heath")
tim_berners_graph.add_node("Sören Auer")
tim_berners_graph.add_node("Michael Hausenblas")
tim_berners_graph.add_node("Kingsley Idehen")

tim_berners_graph.add_edge("Tim Berners Lee", "Christian Bizer", weight=17)
tim_berners_graph.add_edge("Tim Berners Lee", "Tom Heath", weight=17)
tim_berners_graph.add_edge("Tim Berners Lee", "Sören Auer", weight=8)
tim_berners_graph.add_edge("Tim Berners Lee", "Michael Hausenblas", weight=5)
tim_berners_graph.add_edge("Tim Berners Lee", "Kingsley Idehen",  weight=4)

print(tim_berners_graph.nodes(data=True))
print(tim_berners_graph.edges(data=True))
MilenaCorbellini commented 5 years ago
from networkx import MultiGraph
lee_graph= MultiGraph()

lee_graph.add_node('Tim Berners-Lee')
lee_graph.add_node('Cristian Bizer')
lee_graph.add_node('Tom Heath')
lee_graph.add_node('Soren Auer')
lee_graph.add_node('Lalana Kagal')
lee_graph.add_node('James A. Hendler')
lee_graph.add_node('Daniel J. Weitzner')

lee_graph.add_edge('Tim Berners-Lee', 'Christian Bizer', weight=17)
lee_graph.add_edge('Tim Berners-Lee', 'Tom Heath', weight=17)
lee_graph.add_edge('Tim Berners-Lee', 'Soren Auer', weight=10)
lee_graph.add_edge('Tim Berners-Lee', 'Lalana Kagal', weight=9)
lee_graph.add_edge('Tim Berners-Lee', 'James A. Hendler', weight=8)
lee_graph.add_edge('Tim Berners-Lee', 'Daniel J. Weitzner', weight=8)

print(lee_graph.nodes(data= True))
`print(lee_graph.edges(data=True))
lisasiurina commented 5 years ago

from networkx import Graph

authors = Graph()

authors.add_node("Tim Berners-Lee")
authors.add_node("Christian Bizer")
authors.add_node("Tom Heath")
authors.add_node("Sören Auer")
authors.add_node("Lalana Kagal")
authors.add_node("James A. Hendler")

authors.add_edge("Tim Berners-Lee", "Christian Bizer", weight=17)
authors.add_edge("Tim Berners-Lee", "Tom Heath", weight=17)
authors.add_edge("Tim Berners-Lee", "Sören Auer", weight=10)
authors.add_edge("Tim Berners-Lee", "Lalana Kagal", weight=9)
authors.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)

print(authors.nodes(data=True))
print(authors.edges(data=True))```

[('Tim Berners-Lee', {}), ('Christian Bizer', {}), ('Tom Heath', {}), ('Sören Auer', {}), ('Lalana Kagal', {}), ('James A. Hendler', {})]
[('Tim Berners-Lee', 'Christian Bizer', {'weight': 17}), ('Tim Berners-Lee', 'Tom Heath', {'weight': 17}), ('Tim Berners-Lee', 'Sören Auer', {'weight': 10}), ('Tim Berners-Lee', 'Lalana Kagal', {'weight': 9}), ('Tim Berners-Lee', 'James A. Hendler', {'weight': 8})]
delfimpandiani commented 5 years ago
from networkx import MultiGraph

network = MultiGraph()
# no need to add the notes separately, they are created on-the-go as the edges are created themselves

network.add_edge("Tim Berners-Lee", "Christian Bizer", weight=17)
network.add_edge("Tim Berners-Lee", "Tom Heath", weight=17)
network.add_edge("Tim Berners-Lee", "Sören Auer", weight=10)
network.add_edge("Tim Berners-Lee", "Lalana Kagal", weight=9)
network.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)
network.add_edge("Tim Berners-Lee", "Daniel J. Weitzner", weight=8)

print(network.nodes(data=True))
print(network.edges(data=True))

[('Tim Berners-Lee', {}), ('Christian Bizer', {}), ('Tom Heath', {}), ('Sören Auer', {}), ('Lalana Kagal', {}), ('James A. Hendler', {}), ('Daniel J. Weitzner', {})]
[('Tim Berners-Lee', 'Christian Bizer', {'weight': 17}), ('Tim Berners-Lee', 'Tom Heath', {'weight': 17}), ('Tim Berners-Lee', 'Sören Auer', {'weight': 10}), ('Tim Berners-Lee', 'Lalana Kagal', {'weight': 9}), ('Tim Berners-Lee', 'James A. Hendler', {'weight': 8}), ('Tim Berners-Lee', 'Daniel J. Weitzner', {'weight': 8})]
mangiafrangette commented 5 years ago
from networkx import Graph

tim_graph = Graph()

tim_graph.add_node("Tim Berners-Lee")
tim_graph.add_node("Christian Bizer")
tim_graph.add_node("Tom Heath")
tim_graph.add_node("Sören Auer")
tim_graph.add_node("Lalana Kagal")
tim_graph.add_node("James A. Hendler")

tim_graph.add_edge("Tim Berners-Lee", "Christian Bizer", weight=17)
tim_graph.add_edge("Tim Berners-Lee", "Tom Heath", weight=17)
tim_graph.add_edge("Tim Berners-Lee", "Sören Auer", weight=10)
tim_graph.add_edge("Tim Berners-Lee", "Lalana Kagal", weight=9)
tim_graph.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)

print(tim_graph.adj["Tim Berners-Lee"])
bluebell94 commented 5 years ago

from networkx import MultiGraph

team_coworkers=MultiGraph() team_coworkers.add_node("Tim Berners-Lee") team_coworkers.add_node("Christian Brizer") team_coworkers.add_node("Tom Heath") team_coworkers.add_node("Sören Auer") team_coworkers.add_node("Lalann Kagul") team_coworkers.add_node("James A. Hendler")

team_coworkers.add_edge("Tim Berners-Lee", "Christian Brizer", weight=17) team_coworkers.add_edge("Tim Berners-Lee","Tom Heath", weight=17) team_coworkers.add_edge("Tim Berners-Lee", "Sören Auer",weight=10) team_coworkers.add_edge("Tim Berners-Lee", "Lalann Kagul", weight=9) team_coworkers.add_edge("Tim Berners-Lee", "James A. Hendler", weight=8)

print(team_coworkers.nodes(data=True)) print(team_coworkers.edges(data=True))

print(team_coworkers.adj)

[('Tim Berners-Lee', {}), ('Christian Brizer', {}), ('Tom Heath', {}), ('Sören Auer', {}), ('Lalann Kagul', {}), ('James A. Hendler', {})] [('Tim Berners-Lee', 'Christian Brizer', {'weight': 17}), ('Tim Berners-Lee', 'Tom Heath', {'weight': 17}), ('Tim Berners-Lee', 'Sören Auer', {'weight': 10}), ('Tim Berners-Lee', 'Lalann Kagul', {'weight': 9}), ('Tim Berners-Lee', 'James A. Hendler', {'weight': 8})]

{'Tim Berners-Lee': {'Christian Brizer': {0: {'weight': 17}}, 'Tom Heath': {0: {'weight': 17}}, 'Sören Auer': {0: {'weight': 10}}, 'Lalann Kagul': {0: {'weight': 9}}, 'James A. Hendler': {0: {'weight': 8}}}, 'Christian Brizer': {'Tim Berners-Lee': {0: {'weight': 17}}}, 'Tom Heath': {'Tim Berners-Lee': {0: {'weight': 17}}}, 'Sören Auer': {'Tim Berners-Lee': {0: {'weight': 10}}}, 'Lalann Kagul': {'Tim Berners-Lee': {0: {'weight': 9}}}, 'James A. Hendler': {'Tim Berners-Lee': {0: {'weight': 8}}}}

beccadelbens commented 5 years ago
from networkx import Graph

first_graph = Graph()

first_graph.add_node("Tim Berners Lee")
first_graph.add_node("Christian Bizer")
first_graph.add_node("Tom Heath")
first_graph.add_node("Soren Auer")
first_graph.add_node("Lalana Kagal")
first_graph.add_node("James A. Hendler")

first_graph.add_edge("Tim Berners Lee", "Christian Bizer", weight=17)
first_graph.add_edge("Tim Berners Lee", "Tom Heath", weight=17)
first_graph.add_edge("Tim Berners Lee", "Soren Auer", weight=10)
first_graph.add_edge("Tim Berners Lee", "Lalana Kagal", weight=9)
first_graph.add_edge("Tim Berners Lee", "James A. Hendler", weight=8)

print(first_graph.edges(data=True))
#[('Tim Berners Lee', 'Christian Bizer', {'weight': 17}), ('Tim Berners Lee', 'Tom Heath', {'weight': 17}),
#('Tim Berners Lee', 'Soren Auer', {'weight': 10}), ('Tim Berners Lee', 'Lalana Kagal', {'weight': 9}),
#('Tim Berners Lee', 'James A. Hendler', {'weight': 8})]
dafnikitsiki commented 5 years ago

from networkx import MultiGraph

create a new graph

tim_graph = MultiGraph()

create five edges

tim_graph.add_edge("Tim Berners Lee", "Tom Heath", weight=17) tim_graph.add_edge("Tim Berners Lee", "Cristian Bizer", wight=17) tim_graph.add_edge("Tim Berners Lee", "Soren Auer", weight=10) tim_graph.add_edge("Tim Berners Lee", "Lalana Kagal", weight=9) tim_graph.add_edge("Tim Berners Lee", "James A. Hendler", weight=8)

print(tim_graph.edges(data=True)) @essepuntato is it correct not to create the nodes alone before creating the edges?

essepuntato commented 5 years ago

Hi @dafnikitsiki

@essepuntato is it correct not to create the nodes alone before creating the edges?

Yep, this is a totally feasible approach indeed.

dafnikitsiki commented 5 years ago

Thank you very much for the reply!