In the next few talks we're going to be really digging
in to how to build a simple agent based model using
the NetLogo programming environment.
But before that I want to introduce NetLogo
and explain NetLogo to you a little bit.
And before I do that I highly recommend you pause
this video right now and go and complete the three
NetLogo tutorials if you haven't already done that,
they'll really help you get up to speed quickly as to
how NetLogo works,
and you can find them by opening up the help menu
and then going to the NetLogo user manual,
and then if you go down you'll see 'Tutorial
Number 1', 'Tutorial Number 2', 'Tutorial Number 3',
and they provide step by step instructions to get you
up to speed on using NetLogo.
That being said I'm going to spend some time today
talking to you about how NetLogo is set up,
what the structure is, and get you familiar with
the overall interface.
NetLogo is unique compared with a lot of agent
based modelling languages
in that it has its own user interface, so there's no
reason to write NetLogo code outside this interface
and then import it.
Instead, you just write it right here in what's called the code tab,
and we'll spend a lot more time with that later.
Today I want to talk about the Interface and Info tabs,
which are the other two major components
of a NetLogo model.
The info tab is a tab that basically documents
the model
and explains how the model can be used
and what it is trying to understand,
and the interface tab controls the actual interactions
of the user with the NetLogo model.
Here you see the Info Tab for the flocking model
that we've looked at before.
Each of the Info Tabs in NetLogo has a set of
predefined sections that are loaded in them,
and in the model library you will find that all
these sections are filled out.
These are not required sections: this is NetLogo
style versus NetLogo syntax.
But we highly encourage thinking about these
questions when completing your info tab.
The info tab is so that you send a model to
another programmer, user or researcher
they can quickly get a sense of what the model
is actually discussing
and what's going on within the model.
The questions and sections here are meant to
help you elucidate and help you out with that process.
I highly recommend doing something similar to this.
So, for instance, there's a section called 'What
is it?' that describes what the model is
There's a section called 'How it works', this
describes the actual mechanisms of the agents
So in the flocking model, for instance, it talks
about alignment, separation, and cohesion
There's a section 'How to use it' that tells the
user how to actually interact with the model
and work with it.
'Things to notice': this might describe emergent
properties that they should observe
or what might be interesting about the model
'Things to try': this is the things that they might
want to do by manipulating the default rules
to try and get a better understanding.
'Extending the model': this is if people want
to go beyond the model and add their own code to it
and try and take it to another area.
If you find a model in the model library that you like,
I highly recommend looking at the 'Extending
the model' section
because you might have some interest in trying
to extend that model yourself
Then there's the 'NetLogo features', this will
highlight specific areas of NetLogo code
that the model is looking at and discussing.
'Related models', which talks about other
models that might be interesting
for people who are interested in this model.
'Credits and References' talks about where
the model gets its inspiration from,
in this case it cites Craig Reynolds and links
to the 'Boids' website to get more information.
'How to Cite' tells people how they can cite this
model if they're going to use it in their own work,
and then any licence information as well.
Again, I highly recommend starting your model
documentation as you're starting your model.
So, for instance, if you start a brand new
model and you click on the info tab
you'll see that right away NetLogo prepopulates
it with some standard sections for you to fill out
and then you can click on 'Edit' and start to
edit the model descriptions.
So you can say 'This model explores interesting
patterns of behaviour in traffic'
It's a place for you to start writing about what
your model is and what its doing right away.
The Info Tab files are very simplified formatting
mark-up language.
So, for instance if you start a line with two '#'s,
it will automatically convert that
to these blue bulleted lists that you see here.
So that's the basic info on the Info Tab.
We're going to talk a little bit about the interface
in the next section,
and then we'll finally get on to the Code section. Thanks.