E-Learning 3.0 : Identity Graphs

We are now in the fourth week of this E-Learning 3.0 open course/MOOC. The task for this week is to create an Identity Graph, which Stephen Downes (convener of this course) has outlined as follows:

Identity – Create an Identity Graph

  • We are expanding on the marketing definition of an identity graph. It can be anything you like, but with one stipulation: your graph should not contain a self-referential node titled ‘me’ or ‘self’ or anything similar
  • Think of this graph as you defining your identity, not what some advertiser, recruiter or other third party might want you to define.
  • Don’t worry about creating the whole identity graph – focusing on a single facet will be sufficient. And don’t post anything you’re not comfortable with sharing. It doesn’t have to be a real identity graph, just an identity graph, however you conceive it.

Here is my graph, which I created using Matthias Melcher’s Think Tool – Thought Condensr, which is very quick and easy to use.

Like Matthias,  I puzzled over why Stephen required that the graph – “should not contain a self-referential node titled ‘me’ or ‘self’ or anything similar”. How could I avoid this if the graph is to be about my identity? In the event, it became obvious that not only is it possible to create the graph without referring to me, but also that doing this clearly demonstrates that knowledge of my identity is in the network rather than any specific node. My identity begins to emerge from the graph, without me having to specify it.

You can see from the graph that there are three links which don’t connect. I did this by simply cutting them off for the screenshot of the graph, because I wanted to suggest that this graph could, in fact, go on and on. This image provides only a glimpse of my identity. I could not only expand the graph, by making more links and connections, but I could also make more connections within this section of the graph. I am also aware that if I started afresh and drew this tomorrow it would be different because my identity and how I think of it is fluid and evolving.

I was also aware in drawing the graph that pretty much all of it is traceable online. It reminded me of the introductory task that was set on Etienne Wenger’s online course  Foundations of Communities of Practice that he ran with John Smith and Bron Stuckey in 2008. The task was based on the idea of six degrees of separation. “Six degrees of separation is the idea that all living things and everything else in the world are six or fewer steps away from each other so that a chain of “a friend of a friend” statements can be made to connect any two people in a maximum of six steps” (see Wikipedia). At the start of that course we were given the name of an unknown fellow participant and had to find out enough about them to be able to link to them in six steps and then share this information. This was a very good way of learning more about fellow participants at the start of the course, but also of recognising that we can easily connect to anyone across the world in just a few steps.

Stephen set some further optional questions for us to consider:

  • What is the basis for the links in your graph: are they conceptual, physical, causal, historical, aspirational?

They seem to be physical and historical, whereas Matthias’s graph seems to emphasise the conceptual. 

  • Is your graph unique to you? What would make it unique? What would guarantee uniqueness?

I think it must be unique. The nodes are not unique, but the relations between the nodes, whilst they might not be unique individually, as a whole must be unique. I think it would be impossible to guarantee its uniqueness if it remained static. Anyone could come along and copy or mimic it. Uniqueness can only be guaranteed if the graph is continually updating, evolving and new connections are being made. I am not sure whether old connections can be broken, or do they just become inactive and move way off to the edge of the graph?

  • How (if at all) could your graph be physically instantiated? Is there a way for you to share your graph? To link and/or intermingle your graph with other graphs?

I’m not sure if I have understood the question correctly? Isn’t the graph I have created using Matthias’s Think Tool, and posted here, a physical instantiation? Does physical instantiation have a specific meaning in relation to graphs? I think I might have missed the point – but I can see that it would be relatively easy to intermingle my graph with Matthias’s graph. It might be necessary for us both to add a few nodes and links, but not many, to be able to connect the two graphs fairly seamlessly (a bit like the six degrees of separation task described above).

  • What’s the ‘source of truth’ for your graph?

This is a big question as it raises the whole question of what we mean by truth. I have been grappling with this for quite a few months now. In my most recent blog post about ‘truth’ –  I reported that both Gandhi and Nietzsche have expressed the view that “human beings can only know partial and contingent truths and perspectives; there are a multiplicity of truths and perspectives.” So in these terms, the truth of my graph can only be partial or contingent. Even if I have not knowingly lied, I have selected what to include in the graph and therefore I have also selected what to leave out.

But Stephen’s question is about the ‘source of truth’. Is he asking about ‘source of truth’ as defined in information systems?  This is not a subject I know anything about.

In information systems design and theory, single source of truth (SSOT) is the practice of structuring information models and associated data schema such that every data element is stored exactly once. Any possible linkages to this data element (possibly in other areas of the relational schema or even in distant federated databases) are by reference only. Because all other locations of the data just refer back to the primary “source of truth” location, updates to the data element in the primary location propagate to the entire system without the possibility of a duplicate value somewhere being forgotten. https://en.wikipedia.org/wiki/Single_source_of_truth

In these terms I’m not sure how to answer Stephen’s question about ‘source of truth’. If someone could enlighten me that would be great.

E-Learning 3.0 : Graph

Graph is the Topic for Week 3 of Stephen Downes’ E-Learning 3.0 MOOC. Again, he has provided a good Synopsis – see https://el30.mooc.ca/cgi-bin/page.cgi?module=7. In the last three paragraphs in this synopsis he writes:

In connectivism we have explored the idea of thinking of knowledge as a graph, and of learning as the growth and manipulation of a graph. It helps learners understand that each idea connects to another, and it’s not the individual idea that’s important, but rather how the entire graph grows and develops.

It helps us see how a graph – and hence, knowledge – is not merely a representational system, but is rather a perceptual system, where the graph is not merely the repository, but a growing and dynamic entity shaped by – and shaping – the environment around itself.

Graphs and graph theory demonstrate in a concrete way how everything depends on something else, and helps us place our understanding of ourselves, or knowledge, and our work into a wider context. Hash graphs take this a step further by illustrating fundamental knowledge-creation mechanisms as cloning, forking, versioning and merging.

The task for this week requires creating a graph.

Task

I am not very familiar with graph theory. I know some of the language – vertices and edges – and I have seen graphs, but have not known until now that they are called graphs, e.g. I am familiar with the work of Aras Bozkurt @arasbozkurt.  See for example the dynamic graph he has created of Twitter activity on this course – https://twitter.com/arasbozkurt/status/1059543856394485760  That’s the limit of what I know about them, because, to be honest, graphs do not ‘light my fire’!

However, I have completed the task, at a novice’s level, so no need to read on unless you too are a novice, in which case you might be interested. I now know a bit more, and made some interesting discoveries, the most important one being that the graph is only as reliable/trustworthy as the data that is put in.

I will respond to each of the three parts of the task in turn.

  1. Create a model graph of some aspect of the E-Learning 3.0 course (it doesn’t have to be an actual graph, only a representation of what an actual graph might look like. We’ve already seen, eg., graphs on the relations between people in the course. Could there be other types of graphs?

This is my graph – hand drawn, which takes longer, but was good for making me think.

Before drawing this I first read the reading recommended in the newsletter – A Gentle Introduction to Graph Theory and watched a video that I found on YouTube – Graph Theory – An Introduction.

As yet I have only skimmed the other references in the reading list, but have copied them at the end of this post for future reference.

Below, I will describe the tortured way I went about this task.

I was interested in blog posts, the number of posts each participant (who has submitted their blog feed) has made and the number of comments they have received.

I went to my Feedly RSS reader where I have 20 blog posts in my EL30 category and went through all the blog posts relating to EL30, noting down the name of the blog, the name of the author, the number of posts made, and whether each post had received a comment or not, at the same time identifying who the comment was from. I then labelled each blog from V1 to V20. Having done this I was able to pull out all the blogs that have received comments, and identify in terms of V1 – V20, who these comments were from.

At this point I made a number of observations:

  • This graph will not represent the activity on the course, because a number of participants have made posts but not received any comments
  • I decided to only include comments from people in the EL30 course, whereas participants who already have an established network and blog, have received comments from people not participating in the course.
  • I had to decide whether an invited speaker counts as a course participant for this activity. I decided No.
  • I had to decide whether Stephen counts as a participant. I decided Yes.
  • For simplicity’s sake I did not record the number of times someone commented on a single post. I counted them all as one comment. My main objective was to see who was commenting on which blogs.

Later I skim read this article – https://medium.freecodecamp.org/i-dont-understand-graph-theory-1c96572a1401 and now think that some of these decisions were wrong, e.g. all participants should be in the graph even if they have not posted, or commented, on a blog.

  1. In your model, consider how the states of the entities in that graph might vary. Consider not only how nodes might vary (eg., a person might have a different height over time) but also how the edges might vary (eg., a person might have a different strength of relation (calculated how?) with another person over time).

At first, I interpreted this as how nodes might vary from each other and noted:

  • This might be a first-time blogger or a newly created blog
  • The participant might lack the confidence to comment on other blogs
  • The participant might be an introvert
  • The participant might have joined the course late
  • The participant might be a very experienced blogger
  • The participant might already have expertise in the topic
  • The participant might already be recognised as having expertise in the topic.
  • The participant might have more social power

But on second reading I realised that the question was about how individual nodes might vary over time. Presumably the significance of this is to show that the graph is dynamic rather than static. Of course, the graph I have drawn does not show this. It is static. I would have to draw a series of graphs over time to show it changing. This would then show that each node might vary over time by, for example, changing blogging practice, i.e. writing more or less posts thus increasing or decreasing the likelihood of receiving comments, commenting on other posts more or less (is this a function of the node or of the edge??), creating more than one blog, deleting a blog.

At this point I realised that it is easier to think of each node as a blog rather than as a participant, so the blog might become more or less active, over time, more or less connected over time.

How might the edges vary:

  • They can be bidirectional or unidirectional
  • They might represent a changing number of comments
  • New connections might form over time
  • Connections might break down over time
  1. In your model, consider how knowledge about the changes in states in the graph might be used.

At any one time the graph will show:

  • which nodes are interacting, and which are not
  • which nodes are commenting on other blogs and which are not
  • which are the most active nodes and which the least active
  • which nodes post comments but don’t receive them
  • which nodes receive comments but don’t post them

To get more out of this it would be necessary to:

  • include all participants, even those who at the time of creating this graph are not posting or commenting
  • consider how to represent a chain of interactions between the same people, i.e. a comment on a comment
  • consider whether to include comments from non-course participants

Obviously all this becomes more obvious and easier with a graph that is automatically updated and changes in front of your eyes.

An outstanding question I have is about the limits you put around a graph. For this graph I only looked at blogs and comments tagged #el30. But supposing there was suddenly no activity from any #el30 participant because they had all moved into new blogs and were now interacting with a different set of connections. How would we know that from this graph?

I’m not at all sure that I’ve completed this task correctly. Given that this is a public post, it would be good if any errors were pointed out so that others can see them.

Resources provided by Stephen Downes

A Gentle Introduction To Graph Theory
Vaidehi JoshiBaseCS, 2018/11/05

This is a gentle introduction to graph theory. Graphs are data structures in which entities – called ‘nodes’ – are connected to other entities via some sort of a link – called an ‘edge’. In graph theory there are no limits on what can be connected, nor how they can be connected. Defining graphs in specific ways, however, creates the structures that underlie most of the modern web.

The Neural Network Zoo
Fjodor van Veen, 2018/11/05

Neural Networks are types of graphs. In the past I have stated that in order to be a network, a change of state in one entity in a graph must be capable of producing a change of state in another entity. Neural networks are therefore dynamic and interactive graphs. This resource describes a bunch of different neural networks. Different neural networks have different capabilities, and today are playing an increasingly important role in artificial intelligence.

Types of Machine Learning Algorithms in One Picture
Vishakha JhaTechLeer, 2018/11/05

The diagram in this resource describes some different types of neural networks. Take a look at the specific tasks they perform – neural networks are good at things like classification and recognition, as well as regression (that is, finding a trend or regularity in data). I got this image from this page, which has more resources on neural networks. Web:

Graph Data Structure And Algorithms GeeksforGeeks, 2018/11/05

Graphs are important types of data structures. Instead of thinking of things in rows and columns (the way we would in a spreadsheet or a database) we think of things as nodes and edges. This page has a very brief description of a graph data structure and then a long list of things that can be done with graphs – cycling, sorting, spanning, searching. This page is meant to explore, not to learn – follow the links, try running some of the code (click on the r’run in IDE button’).

What college students should learn about Git
Christopher JefferyMedium, 2018/11/05

You may have heard of GitHub – the open source software repository that was recently acquired by Microsoft for $7.5 billion. GitHub is important because it allows authors to release related versions of their software, to incorporate and merge contributions from many authors, and to allow people to create their own version (or ‘fork’) any application. To do this, GitHub is structured as a Directed Acyclic Graph, creating a series of relationships among code libraries.