Julia Community 🟣

Discussion on: Julia ♥ ABM #0: Agent-based modelling in Julia

Collapse
 
jthooker profile image
Jason Thompson

Hi Frederick - Many thanks for kicking this off.

I agree with all you have written here about the transition from NetLogo to Julia and the potential in Agents.jl. We have been working on an extension to the package (AgentsX.jl) that enables easier definitial of agent 'breeds' as they might be known in NetLogo as we found the Agents.jl framework to be too restrictive in this regard, especially when you have a very complex social system - i.e., we don't want to create agents who are people but have characteristics of 'buses', for instance, we just want to create people and then we want to create buses. We are also trying to create a simpler means for non-technical users to generate functional code.

We presented some of this work at ABMUS2022 last month (The abstract can be found here - modelling-urban-systems.com/) and one of our group's post-docs, Rajith will be presenting a little more at the Agents.jl stream at ESSA in September. He is the main developer.

In terms of speed in NetLogo (not that this is the focus of this post), we've also created some templates for anyone still in the transition to Julia as we are. osf.io/preprints/socarxiv/sqy8c/

Speed and data-visualisation is a non-trivial issue when we are working with policymakers - I am really looking forward to developments in Julia!

Collapse
 
fbanning profile image
Frederik Banning

Hi Jason, first of all thanks for reading and commenting.

Your joint work on AgentsX.jl is very interesting. Although I have to admit that after reading the abstract, I'm not totally sure that I've understood your goals with the package. It seems to me as if most of the functionality you've described in the abstract is already present in Agents.jl or can be easily integrated by users without the need of another package. But as I could see from the git repo, the work is still ongoing, so I'll definitely keep an eye on its development. Thanks for bringing it up.

Also I didn't know about ABMUS2022 and am delighted to see that there is a dedicated and ongoing effort to increase visibility of urban simulations - a topic that I'm also very interested in. This conference definitely already went on my "to-attend list". :)

Collapse
 
jthooker profile image
Jason Thompson

We'd love to have you along to ABMUS 2023, Frederick!

Our main goal with AgentsX.jl is to take the existing functionality of the base package but make a very specific and easy to use version specifically for social scientists that gives a head start focused on core social science problems common to socio-technical systems (assuming there are some...). We want to depart from ODD (a nightmare, imho) to make the 'code as the model' and also want to prompt people to think about the structure of problems in social science by easily incorporating multi-level modelling 'layers' - analogous to socio-ecological conceptualisations in some respects (e.g., moving from psychological and physiological through the behavioural, social, cultural, physical (e.g., maps and space ) and technical (e.g., policiies)). Layers will be set by default but could also be designed. We have come across restrictions with Agents.jl on defining multiple agent types (e.g., machine vs person) as opposed to agents with multiple characteristics (e.g., male or female person), so we've got a fix for that which makes coding things a bit cleaner.

So, yes, it will have all of the existing Agents.jl functionality but will add a few tweaks and 'ready-made' code blocks and functions especially targeted at social scientists.

Thread Thread
 
fbanning profile image
Frederik Banning

Interesting, thanks for elaborating on it. I'll just watch how AgentsX.jl evolves. I will try to incorporate a model including "men and machines" in this series, to showcase how I would do it with the already existing tools. :)

On a sidenote, I agree about the unwieldiness of ODD. To me it feels too strict and seems to attempt to overly standardise very heterogeneous modelling processes.