Communities grant rights to citizens as social permissions to act. I “own” my car because society has given me the permission to own it, so if someone steals it the police try to return it to me and punish the thief. A community that agrees on who owns what improves order and synergy. Rights move conflicts from the physical to the legal level, so people still argue who should own what but no-one is killed or injured in the process. Laws operate on the information level, but on the personal level people just trust each other, and on the community level people just follow norms.
Rights do not mechanize interactions, as they are choices not obligations, e.g. the right to sue does not force us to sue and owning a thing does not stop us from giving it away. Rights define what actors can do, not what they must do.
People are actors not “users”. Traditional computing calls people users as if software was a drug, when actually people choose software and can switch if they want, so they are really actors. In data flow diagrams, people are always sources and sinks outside the information flows. To call people users when online makes them software accessories, which they are not. Since this mindset causes bad design habits, it should be abandoned. Just as we encourage sales assistants to see a customer not a sale, we encourage designers to see people online as actors not accessories.
Actors can act independently of input. Actors don’t just react, but initiate acts based on their autonomy. The word autonomy is from the Greek autos meaning self, and nomos meaning law, means to follow its own laws. As the story goes: light a fire under a table and it burns, light a fire under a dog and it runs away, light a fire under a man and he cooks his dinner. A program entirely defined by its input has no autonomy and so is not an actor, although it can be an agent.
Actors have a “self” that can be held to account for its actions. To hold citizens to account for their actions is the basis of all human society. Community justice evolved from revenge where people personally held others to account, so revenge occurs when community justice fails to work. Accountability assumes choice at some point, so a drunk can be fined because he earlier chose to drink. Even a drug addict who cannot stop now is accountable if once he could. On the other hand, if the state decides that a person is no longer accountable for their actions, it can put them in prison or care. Software is not accountable for its effects as it has no self.
Communities assume that people are accountable and govern accordingly. While philosophers argue over free will, all communities hold people to account for the effects of their acts on others, so criminals are punished and the mentally incompetent are put into care. Accountability is the social principle without which communities fail, but it only applies to people, e.g. in car accidents the driver is accountable not the car. Likewise, the company that writes an installation program is accountable for what it does not the software itself. In colonial times, it was decided that corporations are for legal purposes “persons” and so can enter into contracts. This creates problems as a company is merely an information entity with no accountable self, e.g. “punishing” a scam company by “killing” it, or declaring it bankrupt, just lets its owners start another company to do the same again, as they do. Corporate personhood is the social error that allows the wealthy to deflect responsibility for their actions onto an entity with no self to care.
Rights formally express social concepts like fairness as action rules. The law is the sum total of these rules, and in traditional justice those who break the law are caught by police and punished by the courts. As societies grew bigger they needed laws to support synergy and online communities need them for the same reason. However on the Internet Code is Law, as it can be police, judge and jury. Therefore we must reinvent justice in software terms, to develop what Berners-Lee calls an Internet Bill of Rights. This chapter aims to express social rights as access control rules that designers can use in social technical systems.