Constitutionalism after the Arab Spring

Under Morocco’s 2011 Constitution, Morocco’s Council of Government is selected by the Prime Minister, the leader of the largest party in the legislature. They serve as the cabinet, meeting to deliberate upon policy and establish governmental direction. So far, so Parliamentary. However, when issues of security or strategic policy are to be decided, the King appears at these cabinet meetings, with his attendance transforming a mere ‘Council of Government’ into a grand ‘Council of Ministers’. Yet because the King’s word cannot be disputed in such deliberations, he determines policy. Further, in the absence of a clear constitutional definition of strategic policy, the King can decide the decisions which fall within this remit. So the King is limited only to interventions in specific policy areas, yet he is also the authority who specifies.

This is a peculiar monarchy in which the King is neither absolute nor constitutional, no longer ‘sacred’ yet still ‘inviolable’. Such an arrangement is a distillation of the constitutional debates which have blossomed across the region following the Arab Spring: a coexistence of clearly defined constitutional governance with lingering tradition, both impermeable to debate and demanding of deference.

All politics, to some extent, embodies this negotiation between a conservative attachment to proven tradition and a liberal aspiration towards a different future. It is within this debate that Zaid Al-Ali’s commentary on Arab Constitutionalism, the latest UCL Constitution Unit seminar on the 10th February, is firmly situated. Author of ‘The Struggle for Iraq’s Future’, and an expert on constitutions across the Arab world, Zaid Al-Ali offered an  informative narrative of the progress of constitutions since the Arab Spring, from Egypt’s repeated attempts (2012 and 2013) to Algeria’s absent document (promised reforms to assuage 2011 protestors have as yet been unrealised).

Al-Ali demonstrated the legacies of an authoritarianism which closed debate, centralised power and closely regulated society with an examination of articles concerning ‘freedom of expression’. He drew upon constitutions such as Egypt’s 2013 document, which offers a ‘guaranteed’ right to freedom. Yet such assertive wording is immaterial and disingenuous, he argued, if it coexists with the legacies of previous regimes in existing laws which preclude criticism of the actions of governments or the police. Al-Ali even ironically lauded the honesty of Iraq’s constitution, which notes that its recognition of rights is subject to qualification by the government’s assessment of the needs of public order and the demands of morality.

However, Al-Ali did offer optimism in the struggle against such legacies, describing the promise of a ‘limitation clause’, a provision which he advocated not only in his lecture, but in his discussions with Tunisian constitutional drafters as they embarked upon the creation of an entirely new document. A ‘Limitations Clause’ is a provision which clearly stipulates the conditions under which rights may be restricted, exemplified by Section 36 of the South African Constitution:

“limitations must be reasonable and justifiable in an open and democratic society based on human dignity, equality and freedom”

By its demarcation of a strictly delimited area in which rights can be restricted and clear parameters by which this area can be assessed, such a clause offers a firm reinforcement for rights established elsewhere in a constitution. Such a provision is inspired by the ‘Canadian Charter of Rights and Freedoms’, German constitutional law and the South Africa 1997 Constitution quoted aboveIt is such a cross-pollination of principles, borrowing from the efforts of other constitutional drafters across the world which the ‘Constitute’ project, co-directed by the Constitution Unit’s James Melton, is seeking to facilitate. This free online resource compiles searchable texts of every national constitution currently in force, allowing comparison of the form, structure and content of these documents, a source not only for academics but also constitutional practitioners. The essence of a ‘Limitation Clause’ was included in the fourth draft of the Tunisian Constitution, and although it was not in the exacting form favoured by South African and Canadian drafters, it was nonetheless a move celebrated by Al Ali. Similarly lauded was the open manner of the Tunisian process, permeable to the experience of domestic, foreign and international sources: a very modern form of draftsmanship.

However amidst his discussion of totalitarian legacies and constitutional drafting which remains fettered by history, it was a novel provision raised by Al-Ali which was most chilling. Article 31 of the Egyptian Constitution, approved by 98.1% of those who voted in a January 2014 referendum, states that:

“Cyberspace security is a fundamental element of the economy and national security. The state is responsible for taking necessary procedures to protect it, in a manner regulated by law”

In its absence of specificity, this Article offers an ominous breadth of potential action, declaring the digital domain the realm of the government, a reminder that it is not only the legacies of totalitarianism which need to be considered, but the threats of the modern world.

After the blossoming of the Arab Spring, the period of ‘Arab constitutional drafting’ does not have quite the same aphoristic appeal, nor does it provide a telegenic spectacle. Yet whilst constitutions are living instruments subject to interpretation and change, it is clear the continued remaking of Arab constitutional governance requires both a lexical precision and an awareness of the legacies of authoritarianism.

Edward Lucas is an intern at the Constitution Unit.

Watch the video

Directly Querying the Constitute Data

Thank you to all who attended my seminar today.  As promised, I am going to provide the code that I used to query the data underlying the Constitute site.

To start, you will need to know how to write a SPARQL query.  There are good resources online to teach you how to write such queries (see here or here).  Once you know a bit about writing SPARQL queries, you can test out your skills on the data underlying the Constitute site.  Just copy and paste your queries here.  To get you started, here are the two queries that I used in my seminar:

Query 1:

PREFIX ontology:<http://tata.csres.utexas.edu:8080/constitute/ontology/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT ?const ?country ?year
WHERE {
?const ontology:isConstitutionOf ?country .
?const ontology:yearEnacted ?year .
}

Query 2:

PREFIX ontology:<http://tata.csres.utexas.edu:8080/constitute/ontology/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT ?const ?country ?year ?region ?sectionType ?sectionText ?childType ?childText
WHERE {
?const ontology:isConstitutionOf ?country .
?const ontology:yearEnacted ?year .
?section ontology:isSectionOf ?const .
?country ontology:isInGroup ?region .
?section ontology:hasTopic ontology:env .
?section ontology:rowType ?sectionType .
OPTIONAL {?section ontology:text ?sectionText}
OPTIONAL {?childSection ontology:parent ?section . ?childSection ontology:text ?childText}
OPTIONAL {?childSection ontology:parent ?section . ?childSection ontology:rowType ?childType}
}

Notice the “topic” line in the second query (?section ontology:hasTopic ontology:env .).  The env part of that line is the tag that we use to indicate provisions that deal with “Protection of environment”.  You can explore the list of topics included on Constitute and their associated tags here.

The next step is to apply your querying knowledge using the SPARQL package in R.  I will demonstrate how this is done by walking you through the creation of the Word Cloud that I discussed during my seminar (the code for the histogram is easier to understand and is below).  First, query the SPARQL endpoint using R:

#Opens the Relevant Libraries
library(SPARQL)
#Defines URL for Endpoint
endpoint <- "http://tata.csres.utexas.edu:8080/openrdf-sesame/repositories/test"
#Defines the Query
query <- "PREFIX ontology:<http://tata.csres.utexas.edu:8080/constitute/ontology/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT ?const ?country ?year ?region ?sectionType ?sectionText ?childType ?childText
WHERE {
?const ontology:isConstitutionOf ?country .
?const ontology:yearEnacted ?year .
?section ontology:isSectionOf ?const .
?country ontology:isInGroup ?region .
?section ontology:hasTopic ontology:env .
?section ontology:rowType ?sectionType .
OPTIONAL {?section ontology:text ?sectionText}
OPTIONAL {?childSection ontology:parent ?section . ?childSection ontology:text ?childText}
OPTIONAL {?childSection ontology:parent ?section . ?childSection ontology:rowType ?childType}
}"

#Queries the endpoint
sparql <- SPARQL(endpoint,query,ns=c('ontology','<http://tata.csres.utexas.edu:8080/constitute/ontology/>','const','<http://tata.csres.utexas.edu:8080/constitute/>'))

You now have a data table with the relevant textual data available to you in R under sparql$results.  The second step is to organize that data into a corpus using the text mining package (tm, for short).  Ultimately, I am only interested in rows in the data table that have text (i.e. the sectoinText and childText columns are not empty) and that are from constitutions written in the Americas or Africa, so I will filter the data along these lines in this step of the process.  Here is the code:

#Opens the Relevant Libraries
library(tm)
library(SnowballC)

#Filters Out Correct Regions
data.Africa <- subset(sparql$results,sparql$results$region=="const:ontology/Africa")
data.Americas <- subset(sparql$results,sparql$results$region=="const:ontology/Americas")

#Extracts Section Text from Results and Removes Missing Values
sText.Africa <- subset(data.Africa,data.Africa$sectionText!='NA')
sText.Africa <- subset(sText.Africa$sectionText,sText.Africa$sectionType=="const:ontology/body")
sText.Americas <- subset(data.Americas,data.Americas$sectionText!='NA')
sText.Americas <- subset(sText.Americas$sectionText,sText.Americas$sectionType=="const:ontology/body")

#Extracts Child Section Text from Results and Removes Missing Values
cText.Africa <- subset(data.Africa,data.Africa$childText!='NA')
cText.Africa <- subset(cText.Africa$childText,cText.Africa$childType=="const:ontology/body")
cText.Americas <- subset(data.Americas,data.Americas$childText!='NA')
cText.Americas <- subset(cText.Americas$childText,cText.Americas$childType=="const:ontology/body")

#Appends Parent and Child Text Together
Text.Africa <- data.frame(c(sText.Africa,cText.Africa))
Text.Americas <- data.frame(c(sText.Americas,cText.Americas))

#Converts Data Frames to Corpora
corpus.Africa <- Corpus(VectorSource(Text.Africa))
corpus.Americas <- Corpus(VectorSource(Text.Americas))

Now that I have organized the relevant text into corpora, I need to clean those corpora by removing stop words (e.g. a, an and the), punctuation and numbers and stemming words.  This is standard practice before analyzing text to prevent “the” from being the largest word in my word cloud and to make sure that “right” and “rights” are not counted separately.  The tm package has all the tools to perform this cleaning.  Here is the code:

#Makes All Characters Lower-Case
corpus.Africa <- tm_map(corpus.Africa,tolower)
corpus.Americas <- tm_map(corpus.Americas,tolower)

#Removes Punctuation
corpus.Africa <- tm_map(corpus.Africa,removePunctuation)
corpus.Americas <- tm_map(corpus.Americas,removePunctuation)

#Removes Numbers
corpus.Africa <- tm_map(corpus.Africa,removeNumbers)
corpus.Americas <- tm_map(corpus.Americas,removeNumbers)

#Removes Stopwords
corpus.Africa <- tm_map(corpus.Africa,removeWords,stopwords('english'))
corpus.Americas <- tm_map(corpus.Americas,removeWords,stopwords('english'))

#Stems Words
dict.corpus.Africa <- corpus.Africa
corpus.Africa <- tm_map(corpus.Africa,stemDocument)
corpus.Africa <- tm_map(corpus.Africa,stemCompletion,dictionary=dict.corpus.Africa)
dict.corpus.Americas <- corpus.Americas
corpus.Americas <- tm_map(corpus.Americas,stemDocument)
corpus.Americas <- tm_map(corpus.Americas,stemCompletion,dictionary=dict.corpus.Americas)

The last step is to analyze the cleaned text.  I created a simple word cloud, but you could perform even more sophisticated text analysis techniques to the textual data on Constitute.  I used the wordcloud package to accomplish this task.  Here is the code I used to create the word clouds for my presentation:

#Opens the Relevant Libraries
library(wordcloud)
library(RColorBrewer)
library(lattice)

#Creates a PNG Document for Saving
png(file="WC_env.png", height = 7.5, width = 14, units = "in", res=600, antialias = "cleartype")

#Sets Layout
layout(matrix(c(1:2), byrow = TRUE, ncol = 2), widths = c(1,1), heights = c(1,1), respect = TRUE)

#Sets Overall Options
par(oma = c(0,0,5,0))

#Selects Colors
pal <- brewer.pal(8,"Greys")
pal <- pal[-(1:3)]

#Word Cloud for the Americas
wordcloud(corpus.Americas,scale=c(3,0.4),max.words=Inf,random.order=FALSE,rot.per=0.20,colors=pal)

#Creates Title for Americas Word Cloud
mtext("Americas",side=3,cex=1.25,line=4)

#Word Cloud for Africa
wordcloud(corpus.Africa,scale=c(3,0.4),max.words=Inf,random.order=FALSE,rot.per=0.20,colors=pal)

#Creates Title for African Word Cloud
mtext("Africa",side=3,cex=1.25,line=4)

#Creates an Overall Title for the Figure
mtext("Constitutional Provisions on the Environment",outer=TRUE,cex=2,font=2,line=1.5)

#Closes the Plot
dev.off()

Note that the plotting commands above are complicated by the fact that I wanted to combine two word clouds into the same image.  Had I only wanted to create a single word cloud, say for Africa, and did not care much about the colors of the plot, the following commands would have sufficed:

#Opens the Relevant Libraries
library(wordcloud)

#Word Cloud for Africa
wordcloud(corpus.Africa,scale=c(3,0.4),max.words=Inf,random.order=FALSE,rot.per=0.20,colors=pal)

Anyway, here is the resulting word cloud:

WordClouds_Env

With the commands above, you should be able to replicate the word clouds from my seminar.  In addition, minor modifications to the commands above will allow you to describe the constitutional provisions on different topics or to compare the way that different regions address certain topics.  One could even perform more advanced analyses of these texts with the SPARQL queries outlined above.

CODE FOR HISTOGRAM

#Opens the Relevant Libraries
library(SPARQL)
library(RColorBrewer)

#Defines URL for Endpoint
endpoint <- "http://tata.csres.utexas.edu:8080/openrdf-sesame/repositories/test"

#Defines the Query
query <- "PREFIX ontology:<http://tata.csres.utexas.edu:8080/constitute/ontology/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT ?const ?country ?year
WHERE {
?const ontology:isConstitutionOf ?country .
?const ontology:yearEnacted ?year .
}"

#Makes the Query
sparql <- SPARQL(endpoint,query,ns=c('ontology','<http://tata.csres.utexas.edu:8080/constitute/ontology/>','const','<http://tata.csres.utexas.edu:8080/constitute/>'))

#Subsets Data
data.year <- data.frame(subset(sparql$results,select=c("const","year")))

#Drops Duplicate Observations
data.year <- unique(data.year)

#Makes Year Numeric
year <- as.numeric(data.year$year)

#Creates PNG Document for Saving
png(file="Histogram_Year.png")

#Selects Colors
pal <- brewer.pal(3,"Greys")
pal <- pal[-(1:2)]

#Histogram Command
hist(year, breaks=21, col = pal, border = pal, xlab = "Promulgation Year", ylab = "Number of Constitutions", ylim = c(0,60), xlim = c(1790,2010), main = "Constitutions on Constitute")

#Closes the Plot
dev.off()

And here it is:

Histogram_Year

Announcing the Launch of Constitute: The World’s Constitutions to Read, Search and Compare

23rd September 2013

I am pleased to announce the launch of Constitute, a website for reading, searching, and comparing the world’s constitutions.  Constitutions are critical to countries’ development.  Outcomes, like democracy, economic performance and human rights protection, are all associated with the contents of countries’ constitutions.  It is little wonder, then, that constitutions are often blamed for poor economic and political outcomes or that such outcomes commonly result in constitutional change.  Constitute aims to improve constitutional design and, in doing so, increase the likelihood that countries’ constitutions will facilitate development, rather than hinder it. Numerous countries change their constitution each year.  Already this year we have observed new constitutions in Fiji and Zimbabwe and constitutional amendments in Brazil, Colombia, the Czech Republic, Georgia, Hungary, Mexico, Switzerland and Tonga.  In addition, countries like Egypt, Myanmar, Tunisia and Yemen are all known to be in various stages of the constitutional revision process.  Some might be surprised to learn that so many countries have either recently revised or intend to revise their constitutions.  After all, constitutions are meant to be timeless documents that establish the foundations for politics and governance from one generation to the next.  This may be true in the United States or Western Europe, but most countries’ constitutions are fragile.  A typical constitution lasts only 19 years, which means that, on average, 5 constitutions are replaced and 30 are amended each year.

Despite the high level of constitutional change each year, there is no country that changes its constitution often enough for public officials to gain much experience as constitutional drafters.  Constitutional drafters are typically engaged in a task that they have never done before and will never do again.  They lack systematic information on the contents of other countries’ constitutions that could help them to decide what topics should be addressed in their constitution and how to address those topics.  Such information is hard to acquire.  There is no single location that constitutional drafters can use to access and compare constitutional documents and language – which is critical to drafters – because these documents are locked up in libraries or on the hard drives of constitutional experts.

Constitute addresses this problem by putting searchable copies of the world’s constitutions online.  However, Constitute is more than just a repository of constitutional texts.  The project draws on data collected by the Comparative Constitutions Project over the last 8 years to assign topic tags to provisions within constitutions.  This allows for powerful, topic-based searches of those texts.   There are more than 300 topics for users to choose from on the site, which range from the fairly general – e.g. the structure of the branches of government – to the very specific – e.g. voting rights for indigenous groups.  For those interested in regional or temporal trends in constitution-making, the search results can be filtered by country and year.

Our hope is that Constitute will improve constitution-making by allowing drafters to consider the full array of possible choices when determining the contents of their country’s constitution.  We also anticipate that the tool will empower domestic actors not directly involved in drafting the constitution but who are, nonetheless, integral to the success of that process.  Increasingly, constitution-making processes ask the public to participate, for example by submitting suggestions to the constitutional drafting committee or approving the completed draft in a public referendum.  Constitute will facilitate participation in these aspects of the constitution-making process by allowing groups in civil society, academia, and the general public to inform themselves about how other countries have tackled particular problems.

More generally, the constitutions available on Constitute will be of great interest to numerous domestic actors in countries all over the world.  Many constitutions are not available in digital form and tools to organize their provisions for a non-specialist are rare, even though there is substantial demand for such tools from public officials, lawyers, non-governmental organizations, students, etc.  Constitute can be used by such individuals to learn about their constitutions.  Want to know if your constitution protects freedom of religion or the right to health care or even the rights of breast-feeding mothers?  Just search for the term you are interested in, using either a topic or free text search, and filter the results to display only the country where you reside.   (For the curious reader, note that only Ecuador’s constitution mentions the rights of breast-feeding mothers.)

Constitute will increase transparency in countries throughout the world by ensuring universal access to the world’s constitutions.  We expect that access to these important documents will improve constitution-making as well as empower the general public to play a more active role in their country’s governance.

Constitute was made possible by the support from Google Ideas and the Indigo Trust.