Key properties of software: agency and dynamicity

Having just returned from a short trip to the RDA Plenary 10, I’ve been thinking about a few things that will be the subject of a couple of hopefully short blogs in the near future.  This first one is about software identification, specifically as related to citation.  I was talking with Neil Jefferies from the Oxford Bodleian Libraries about software citation and identification, and we discussed the fact that software can be considered in terms of its agency as much as its content.  Software as an agent that acts on data is actually somewhat similar to a person, maybe more so than it is similar to data, and this may be useful to consider when thinking about software identification.  I previously led a small effort to describe differences between software and data in the context of citation, and while this idea of agency was not explicitly captured in that document, looking back it is apparent that it underlies many of the differences.

Software changes over time, much like a person, and this element of dynamicity is also part of the reason that data citation is not appropriate for software, and similarly, that a data management plan cannot simply treat software as a type of data. Mark Parsons also mentioned to me the idea that software can be considered as a stream. And in a sense, any project is a stream, or more accurately, a braided stream, which somewhat resonates with the fact that Software Heritage is using Merkle tree to organize their software archive.

As we move forward into our possible AI-ish future (the RDA meeting also had a nice introduction to deep learning and AI keynote by Yoshua Bengio, which might have been recorded and might appear on the RDA site), one might imagine that software will develop more person-like properties over time.  However, this idea breaks down a bit, as the software is more the pattern of the connection of neurons in the brain than the person nor the brain itself. Though perhaps the patterns of neurons is the identity?  At this point, I should probably stop and apologize to any neurologists or philosophers who are reading, but close by reiterating that agency and dynamicity are key properties of software, particularly for its identification and citation.


Published by:


Assistant Director for Scientific Software and Applications at NCSA, Research Associate Professor in CS, ECE, and the iSchool at the University of Illinois Urbana-Champaign; works on systems and tools (aka cyberinfrastructure) and policy related to computational and data-enabled research, primarily in science and engineering

Categories Uncategorized3 Comments

3 thoughts on “Key properties of software: agency and dynamicity”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s