CaliuCampaign against software patents - Catalan

Procedure for the directive proposal on software patents

Introduction

The European Commission, has presented the directive proposal COM (2002) 92, 2002/0047 "on the patentability of computer-implemented inventions" wich allows patents on software, mathematics, bussiness methods and anything you can express in computer science terms.

Here, we will try to pick up all information we can about the political desicion mechanism that will be used , people who can have influence, dates, the institutions and the more effective ways of communicating our opposition to this step.

Bear in mind that I am a programmer and have no idea about law, politics or treaties, and because of that, I inform in good faith, trying to be useful, but there can be lots of mistakes, ommissions or misunderstandings. I will try to quote the sources in order to make corrections easy. Please, send to me all corrections, ideas, contributions, etc, you would feel appropriate.

European Institutions

The three of them we are concerned with are the European Commission, The Council and the European Parliament, defined on the Union treaty (Nice treaty and previous) and the accession treaty (be careful with the permanent provisions from 1 november 2004 and the temporary provisions between 1 May 2004 and 31 October 2004).

European Commision

Also known as Commission of the European Communities (CEC). It is the administration and proposes legislation. It has members choosen by their president. The member state governments choose the president of the Commision for 5 years (can be reelected) and it is approved by the European Parliament. The commision is organised in Directorates General. It is regulated by articles 211-219 of the Treaty. It approves its agreements by majority.

Directorate General Internal Market, under Frits Bolkestein, has proposed the directive, after some failed attempts at having software patentability accepted (a biased and unfavourable report, a clearly opposed consultation, etc.). They got plenty of information on the danger in such a proposal, and not only they have not tried to rein the EPO, but they are even trying to cover their adventurous interpretations, favouring the interests of the patent guild and some USA or Japanese multinational corporations. It even threatened to withdraw the directive is the Parliament would amend it as it finally did, and change the law through the amendment of the European Patent Convention, os that the European Parliament is left aside.

The opposition of other directorate generals has not seemed to be enough, despite dissenting voices.

Note: around 1999 there was a reform of directorates generals and they lost the numbers they used to have. Nowadays there is no longer any DG IV or DG XII, but some people keep the habit of refereing thus to them, and these names are still found on old documents. This is why we have posted a list of obsolete directorate general names and numbers.

The Council

The vocabulary about European institutions may be confusig, considering the number of institutions and languages involved. There are 2 councils in the Europen Union (and one out of it).

The Council of Europe.
Nothing to do with what we discuss, it is not part of the European Union.
The European Council
This is part of the European Union. It's the meeting of heads of state, held 4 times a year (e.g. in Barcelona, March 2002). They take political decisions, don't legislate. So it is also not the one we're after. Presidency is held in turn by one member state every 6 months. In first semester 2002 it was Spanish presidency, second semester Denmark, in 2003 Greece and Italy, in 2004 Ireland and Netherlands, etc.
The Council of Ministers of the UE, also known as Council of the UE, or simply Council.
These are meetings between ministers of member states (or people with similar authority, enough to bind their state). It had to meet november the 10th to decide on swpats, but it has been delayed until 17 May 2004 so far. In all our texts we refer to this council..

Formally, decisions are adopted, depending on each case by (article 205):

Votes for each member state
votes until 1 may 2004 votes between 1 may 2004 and 1 november 2004 votes after 1 november 2004
Qualified majority 62 88 232
Total votes 87 124 321
State
Germany 10 10 29
France 10 10 29
Italy 10 10 29
United Kingdom 10 10 29
Spain 8 8 27
Poland 0 8 27
Netherlands 5 5 13
Belgium 5 5 12
Czech Republic 0 5 12
Greece 5 5 12
Hungary 0 5 12
Portugal 5 5 12
Austria 4 4 10
Sweden 4 4 10
Denmark 3 3 7
Lithuania 0 3 7
Slovakia 0 3 7
Ireland 3 3 7
Finland 3 3 7
Estonia 0 3 4
Slovenia 0 3 4
Latvia 0 3 4
Cyprus 0 2 4
Luxembourg 2 2 4
Malta 0 2 3

There is a representative for each member state (a minister or similarly decisive offcial). Decisions are usually taken in sectorial meetings between ministers of the same area. In order to influence the Council one has to talk to the relevant ministers of a member state, or those they delegate on, or somebody else they would listen to.

For Spain the minister in charge was Josep Piqué and later Costa (ministers of Science and Technology), but I'm not sure who is now responsible, maybe Montilla (Industry), but it might be Lopez Aguilar (Justice). The Spanish representative to the Council on software patents was Eduardo Martín, who can be emailed from the Spanish Patent and Trademark Office web site, after reading Proinnova advice, please. The representatives to the working group of the Council for the other member states come likewise from the respective patent offices.

UPDATED 2004.5.11 : sources from the Spanish Ministerio de Asuntos Exteriors y Cooperación say the responisble for the COmpetitiviness Council for Spain is Secretario de Estado para la Unión Europea (Phone +34 91 3798300, Fax +34 91 3798310),, D. Alberto Navarro, nominated by the Consejo de Ministros 19 April 2004. I don't know whether he will go alone.

UPDATED 15.5.2004 : a change in agenda , the software patents directive is no longer an a-item but a B-item, and it will be debated and voted on tuesday 2004.5.18.

Initially France declared itself against software patents, UK in favour, and the rest did not take position. Later the Danish presidency showed great interest on software patents. Their proposal eased patenting software even further. After the first reading in the European Parliament, the Irish presidency proposed another text in 2004 which is esentially the same content than that of 2002, but introduces some of the worst Parlaiment amendments, and some cosmetic ones.

This Irish proposal was criticised in some days of conferences and demonstrations in april 2004. The negotitations continued and the Council denied access to the working documents,saying that the Council interest in comfortable negoiations was more important that the public interest in knowing what was being discussed. But a document was leaked which explains the state of negotiations before the meeting of 5 may 2004:

Most of member states were in favour of the Irish proposal. The leaked document manipulates information on several points and shows reservations by Germany, France (but maybe not too opposed, since it is said to have "a positive attitude at a technical level", sic), Spain, Belgium and Denmark. But in the Coreper meeting on 5 may 2004 (see below on Coreper) Spain and France would have agreed to make the Irish proposal an A-item (accepted by assentment, without vote or debate) for the 17 may 2004 Competitiveness Council of ministers of the EU. Slovakia would also have opposed the Irish presidency proposal. But I don't have the official source for this information.

The person representing the Commission in the Council working group apparently comes from the European Patent Office, an institution which is not in the Commision, not in the EU, and not at all neutral on this subject.

Since ministers are busy in their respective offices, there is a Committee of Permanent Representatives (COREPER) which meets each week in Brussels and takes care of daily businesses and oversees other 250 committees of civil servants working on technical details. More details on COREPER at wikipedia and a Council guide

The European Parliament

There are 626 Members of the European Parliament (MEPs) (788 in may 2004, 732 from june 2004, 786 when Bulgaria and Romania join, 736 after 2009, apparently) elected directly by European Citizens every 5 years. The electoral district is the whole member state, except for UK and Baviera, I believe. The details vary from member state to member state, some of them are also members of their member state Parliament. Over the years the European Parliament has evolved from a more consultive role to a more decisive role in some subjects, for example the directive on software patents, which cannot pass without EP approval.

In the Parliament MEPs form transnational political groups with members from different states with similar ideology.

The directive on software patents was voted on plenary session 24 september 2003. The directive passed with 45 amendments which in genreal terms set up limits to patentability in order ot avoid software patents. But parts remain uncorrected that would be in favour of software patents and introduce contradictions. This makes it difficult to interpret exactly the consequences of what was approved. We are very grateful to MEPs who made it possible. There were about 130 amendments, little time to evaluate them since being published, and much pressure. But from the debat the day before it seems some of them had understood quite well the problem. Anyway, this won't be the final version. It's only first reading, and there will probably be a second and maybe third reading. There's no time to have second reading before the elections of June 2004, so the new European Parliament may decide ot restart the codecision process (with the accession of 10 new member states the Parliament composition might be quite different). In order ot prevent software patents, it'll be necessary that the European Parliament keeps firm on its position (or else rejects the directive and leaves the current law in place).

As a division of labour, MEPs form Committees on different subjects which review each some of the acts in more deep than the rest of MEPs. The committe that dealt with the directive on software patents was:

Committee on Legal Affairs and the Internal Market. (JURI)

This committee approved the report which the EP plenary will vote on. This is a bad report. The rapporteur is labour MEP Arlene McCarthy from Northern Ireland. Her report draft agrees with the Commission (CEC) and does not change much, ignoring all documents that had to be considered (the Economic and Social Committee opinion, and the opinions from the EP committes on culture and industry, the latter being voted some days after the JURI rapporteur draft was published). See a more thorough critique. Some of the amendments by the other JURI members are right, as debated in this mail thread or this document. Transactional amendments (1-3,4-5,6,...) were not very useful.

To learn about the rapporteur views, read a document she had circulated, and why we think she's wrong.

The previous working documents, an accounts of facts and a document on the need or problems about patents, were already biased pro software patentability. The committee also presented an study by Reinter Bakels and P. Bernt Hugenholtz of the university of Amsterdam, commissioned by EP Directorate General IV (research). The study is better than most previous official studies, but not perfect.

November the 7th, 2002 the JURI committee received experts in a hearing. Few of the speakers were favourable to the directive as proposed by the CEC.

There is also a public web forum for the Comittee, (see thread number 6). Posting requires being registered, and email warning of new posts is available. These messages should have reached people in the committee that should have worked most on the software patents file, but not the committee has already voted.

This committe had to take into account the opinion of two other EP committees and the Economic and Social Committee (see below). The two EP committees were:

Committee on Industry, External Trade, Research and Energy (ITRE)

One would expect this committee to be the most responsive to researchers and enterpreneurs and businesspeople. The rapporteur here was a Dutch liberal MEP, Elly Plooij-Van Gorsel. She presented an opinion draft in the good direction, but which failed short of defining the concepts it used, and enough holes still remained to allow software aptents. Her amendments and those o other groups (some good, some bad) were voted in february 2003. The result of the vote was quite good, except for leaving undefined the word "technical" used throughout the articles, in a way that could leave room for misinterpretation in order to accept software patents. See some comments. For other information, the secretary of the committee is Thierry Jacob.

Committee on Culture, Youth, Education, the Media and Sport (CULT)
It was dealt with by French socialist Michel Rocard. His draft and other proposed amendments were voted in January 2003, and the result left only one or two holes for software patents to slip through. See a comment. In the committee secretariat, there is Massimo Palumbo.

The amendments tabled are in MS Word format in the European Parliament web site and in some languages in PDF (but there's aconsolidated version of the whole amended directive in html). There is also an (incomplete?) analysis

For further details, see the rules of Procedure of the European Parliament.

The Economic and Social Committee of the EU

ESC is a consultative institution that integrates civil organisations (labour unions, entreprise unions, NGO,...) in European Politics.
It published a very good report against the directive proposal, even suggesting to make the European Patent Office an EU institution. The JURI committe must consider the report, but they did not have to agree (and they didn't).

The codecision mechanism

The directive proposal will be processed acoording to article 251 (earlier 189B) of the Union treaty (treaty of Nice, Amsterdam, Maastricht and earlier). It is called the codecision procedure because affairs are decided between the Council and the European Parliament, always from a proposal from the Commission.

The Commission sends the proposal to the Council and the European Parliament. The European Parliament votes in first reading whether it accepts, amends or rejects the directive. The Council may agree or not. If it agrees it's done. If it doesn't the Council has to adopt a common position ("all" member states must agree). The Commission gives its opinion, and the European Parliament votes again in second reading. If the EP accepts or rejects the common position (by 314 votes or more) that is the result of the codecision procedure. If the EP introduces amendments in second read, the Council decides by qualified majority whether it accepts or rejects the amendments. If the Council does not accept all EP amendments, a conciliation committee is formed, with 15 members from the Council and 15 members from the EP. The Conciliation committee produces a proposal that both EP and the Council vote again in third reading. If both accept it it passes. If any one rejects it it does not pass. There is a Council guide with mnore details. And EURIM has also a good summary.

Usually the Council votes by absolute majority, but as seen, sometimes it's by qualified majority, and it takes unanimity to vote against the Commission proposal. But see sections on the Council and on the Parliamentfor the parts of the process inside those institutions.

This is at least the formal mechanism. In practice to get sooner to agreements, there would be trilateral meetings between Council, Commmission and EP, to get work done and reach the plenary already with defined positions. Apparently Parliament has more people and less time pressure (MEPs stay for 5 years but the Council presidency changes every 6 months and the president may want results within that term). This would leave more room to the Parliament than what it is strictly deduced from the treaty (which has evolved to give progresssively more power to the EP). FFII has some more hints on the players an the codecision procedure .

So far as I can understand, the codecision procedure, ported to pseudoJava would be something like this:

class Politics implements TreatyofNice, AllTheOtherStuffHopefully {
Directive codecisionProcedure(EuropeanParliament ep, Comission cec, Council council)
{
    

    //  proposal=cec.writeProposal();
    Directive proposal=cec.call(bsa);
    cec.send(proposal,ep) &
    cec.send(proposal,council);


    View opinion = ep.reading(1,proposal);


    if (council.qualifiedMajority(opinion)) {
         return opinion;
    }
    View commonPosition = council.discuss();
    while   (! council.qualified_majority(commonPosition)) {

            commonPosition = council.discuss();
    };
    

    council.send(commonPosition, ep);
    cec.send(cec.getPosition(commonPosition), ep);
        

    try {
             setTimeout(4*MONTH);
             View epOpinion = ep.reading(2,commonPosition);
             setTimeout(DISABLE);
         } catch (Timeout e) {
              commonPosition.setState(PASSED);
              return commonPosition;
         }

             if (epOpinion.ammendments.count() == 0) {
                 // accepted or rejected 
                 return epOpinion;
             } else { //ammended
                 ep.send(epOpinion, council);
                 setTimeout(4*MONTH);
                 try {
                     ep.send(epOpinion, cec);
                     View cecOpinion = cec.getOpinion(epOpinion);
                     boolean agreed = true;

                     for (i=0; (i < opinion.ammendments.count()) ; i++) {
                         Ammendment a = opinion.getAmmendment(i);
                         if (cecOpinion.agreesWith(a)) {
                             a.setApproved(council.qualifiedMajority(a));
                         } else {
                             a.setApproved(council.unanimity(a));
                         }
                         agreed = agreed && a.getApproved();
                     };
                 }  catch (Timeout e) {
                     agreed=false;
                 };

                 if (agreed) {
                     epOpinion.setState(PASSED);
                     return epOpinion;
                 };

                 setTimeout(8*WEEK); {
                 ConciliationCommittee cc;
                 try {
                      // Art 251 Treaty of nice. Members of council are
                      // one per EU member state.
                      cc = new ConciliationCommittee(
                                          council.pickRepresentatives(council.NUMBER_OF_MEMBER_STATES), 
                                          ep.pickRepresentatives(council.NUMBER_OF_MEMBER_STATES) );
                      
                      cc.listen(cec.getCommissioner());
                 }  catch (Timeout e) {
                     epOpinion.setState(REJECTED);
                     return null; 
                 };
                 setTimeout(8*WEEK); 
                 
                 View jointText
                 try {
                     jointText = cc.discuss();
                     while (!((cc.getCouncilRepresentatives().qualifiedMajority(jointText))
                              &&(cc.getEPRepresentatives().majorityOfMembers(jointText)))) {
                        jointText = cc.discuss();            
}          
                 }  catch (Timeout e) {
                     jointText.setState(REJECTED);
                     return null; 
                 };
                 setTimeout(8*WEEK); 
                 try {
                     cc.send(jointText,council);
                     cc.send(jointText,ep);
                     if ((ep.reading(3,jointText).state == PASSED) 
                         && council.qualifiedMajority(jointText)) {
                         jointText.setState(PASSED);
                         return jointText;
                     } else {
                         jointText.setState(REJECTED);
                         return null;
                     }
                 }  catch (Timeout e) {
                     jointText.setState(REJECTED);
                     return null; 
                 };
             }


    }
}


}


class EuropeanParliament {

    int NUMBER_OF_SEATS ;

    // constructor
    public EuropeanParliament(Votes elections) {
             // possibly wrong for dates < 1999, I haven't checked
         if (System.getCurrentDate() < "2004.05.1") {
           NUMBER_OF_SEATS = 626;
         } else {
          if (System.getCurrentDate() < "2004.06.13") {
             NUMBER_OF_SEATS = 788;
          } else {
            if (System.getCurrentDate() < "2009.06.13 aprox") {
              NUMBER_OF_SEATS = 732;
            } else {
              NUMBER_OF_SEATS = 736; // possibly, with Romania and Bulgaria 
        }
         buildPoliticalGroups();
         buildCommittees();
    }

    public View reading(int round, View proposal) {

        Committee rc = getRelevantCommittee(proposal);
        CommitteeSet rcs = getSomeOtherCommittees(proposal);
        if (round == 1) {
            rc.decideProcedure();
        };
        if (getRapporteur(proposal) == null) {
            setRapporteur( rc.appointRapporteur() );
        };
        Report draft = getRapporteur(proposal).writeReport(proposal);
        for (i=0; i<rcs.count(); i++) { 
            if (rcs.getCommittee(i).getOpinion() != null ) {
                draft.include(rcs.getCommittee(i).getOpinion());
            }
        };
        rc.listen(cec);
        boolean agreed = false;
        while (!agreed) {
            draft = rcs.discuss(draft);
            agreed = rc.vote(draft); // by majority of votes cast ?
                                     // depends on procedure? 
             // from "the trace" it seems it was by majority of votes cast 
        }
        if (round != 3) {
            draft.include(debateInPlenary(draft).getAmmendments());
        }
        switch (round) {
        case 1 : if (getVotesFor() > getVotesAgainst) {
                    draft.setStatus(PASSED); //possibly with ammendments
                 } else {
                    draft.setStatus(REJECTED); 
                 } 
            break;
        case 2 :  while ((draft.ammendments.count() > 0) 
                          && draft.getStatus() != PASSED) {
                    if (getVotesFor() > NUMBER_OF_SEATS / 2 ) {  
                            draft.setStatus(PASSED);
                    } else {
                        draft.dropAmmendments(some);
                    }
                  };
                  if (draft.ammendments.count() == 0) {
                      if (getVotesFor() > getVotesAgainst()) {
                          draft.setStatus(PASSED);
                      } else {
                          if (getVotesAgainst() > NUMBER_OF_SEATS / 2 ) {
                              draft.setStatus(REJECTED); 
                          }else {
                              raise TimeOut("No decision"); //not 100% sure
                          }
                      }; 
                  };
                  break;
          case 3 : if (getVotesFor() > getVotesAgainst) {
                    draft.setStatus(PASSED); //No ammendments allowed
                 } else {
                    draft.setStatus(REJECTED); 
                 } 
            break;
        }


    } 
}


class Council {

    int NUMBER_OF_MEMBER_STATES ; 
    int QUALIFIED_MAJORITY_VOTES; 
    int TOTAL_VOTES;
    final String states[] ;
    final int qualifiedVotes[];
   // constructor
    public Council() {
       if (System.getCurrentDate() < "2004.05.01") {
           NUMBER_OF_MEMBER_STATES = 15;
           QUALIFIED_MAJORITY_VOTES = 62;
           states = {
                      "DE","FR","IT","UK","ES","BE","GR","NE",
                      "PT","AT","SV","DK","FI","IE","LU"
                    };
          qualifiedVotes = {
                       10 , 10 , 10 , 10 ,  8 ,  5 ,  5 ,  5 , 
                        5 ,  4 ,  4 ,  3 ,  3 ,  3 ,  2
          };
          

         } else {
           if (System.getCurrentDate() < "2004.11.01") {
              NUMBER_OF_MEMBER_STATES = 25;
              QUALIFIED_MAJORITY_VOTES = 88;
              states = {
                      "DE","FR","IT","UK","ES","PL",
                      "BE","CZ","GR","HU","NE","PT",
                      "AT","SV","DK","EE","LT","SL","SK","LV","FI","IE", 
                      "CY", "LU", "MT"
                       };
              qualifiedVotes = {
                       10 , 10 , 10 , 10 ,  8 ,  8 ,  
                        5 ,  5 ,  5 ,  5 ,  5 ,  5 ,
                        4 ,  4 ,  3 ,  3 ,  3 ,  3 ,  3 ,  3 ,  3 ,  3 ,  
                        2 ,  2 ,  2
              };
          } else {
              NUMBER_OF_MEMBER_STATES = 25;
              QUALIFIED_MAJORITY_VOTES = 232;
              states = {
                      "DE","FR","IT","UK","ES","PL",
                      "NE","BE","CZ","GR","HU","PT",
                      "AT","SV","DK","LT","SK","FI","IE", 
                      "EE","SL","LV","CY","LU","MT"
                       };
              qualifiedVotes = {
                       29 , 29 , 29 , 29 , 27 , 27 ,  
                       13 , 12 , 12 , 12 , 12 , 12 ,
                       10 , 10 ,  7 ,  7 ,  7 ,  7 ,  7 ,  
                        4 ,  4 ,  4 ,  4 ,  4 ,  3
              };
            // todo: add Romania and Bulgaria in the future
          }

  
        }
         TOTAL_VOTES=0;
         for(int i=0; i<NUMBER_OF_MEMBER_STATES; i++) {
              TOTAL_VOTES += qualifiedVotes[i];
         } 
    }
 
    } 
    boolean qualifiedMajority(View proposal) {
        int votes = 0;
        int countries = 0;
        for(i=0; i < NUMBER_OF_MEMBER_STATES ; i++) {
            if (votesFor(states[i], proposal)) {
                votes += qualifiedVotes[i];
                countries ++;
            }
        };
       if (System.getCurrentDate() < "2004.05.01") {       
        return ( (votes >= QUALIFIED_MAJORITY_VOTES )  
                 && (cec.agrees(proposal) || countries >= 10)
                 );
       } else {
        return ( (votes >= QUALIFIED_MAJORITY_VOTES ) 
           && ( (cec.agrees(proposal) && (countries >= NUMBER_OF_MEMBER_STATES / 2) ) 
                || (countries >= NUMBER_OF_MEMBER_STATES * 2.0 / 3.0)   
               )
       }

    }
    boolean unanimity(View proposal) {
        boolean ok = true;
        for(i=0; ok && (i < NUMBER_OF_MEMBER_STATES) ; i++) {
            ok = votesFor(states[i], proposal); 
        };
        return ok;

    }
}

I hope it's not patented :)..

Calendar

The Treaty and rules define the maximun allowed time between decision in the codecision procedure, but this is only an upper bound on the needed time. The actual dates are set depending on the involved actors agendas, and are not all available from the start. Some UE web pages must be watched:

See also our agenda with other events.



$Id: codecisio.en.html,v 1.15 2004/05/28 09:28:29 xdrudis Exp $