# C_2010346EN.01002603.xml

| 18.12.2010 | EN | Official Journal of the European Union | C 346/26 |
| ---------- | -- | -------------------------------------- | -------- |

---

Reference for a preliminary ruling from High Court of Justice (Chancery Division) (England and Wales) made on 11 August 2010 — SAS Institute Inc. v World Programming Ltd

(Case C-406/10)

()

2010/C 346/45

Language of the case: English

Referring court

High Court of Justice (Chancery Division)

Parties to the main proceedings

Applicant: SAS Institute Inc.

Defendant: World Programming Ltd

Questions referred

A.   On the interpretation of Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs
( 1 )
and of Directive 2009/24/EC of the European Parliament and of the Council of 23 April 2009 (codified version)
( 2 ):

| 1. | Where a computer program (‘the First Program’) is protected by copyright as a literary work, is Article 1(2) to be interpreted as meaning that it is not an infringement of the copyright in the First Program for a competitor of the rightholder without access to the source code of the First Program, either directly or via a process such as decompilation of the object code, to create another program (‘the Second Program’) which replicates the functions of the First Program? |
| -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

| 2. | Is the answer to question 1 affected by any of the following factors:
(a)
the nature and/or extent of the functionality of the First Program; (b)
the nature and/or extent of the skill, judgment and labour which has been expended by the author of the First Program in devising the functionality of the First Program; (c)
the level of detail to which the functionality of the First Program has been reproduced in the Second Program; (d)
if the source code for the Second Program reproduces aspects of the source code of the First Program to an extent which goes beyond that which was strictly necessary in order to produce the same functionality as the First Program? | (a) | the nature and/or extent of the functionality of the First Program; | (b) | the nature and/or extent of the skill, judgment and labour which has been expended by the author of the First Program in devising the functionality of the First Program; | (c) | the level of detail to which the functionality of the First Program has been reproduced in the Second Program; | (d) | if the source code for the Second Program reproduces aspects of the source code of the First Program to an extent which goes beyond that which was strictly necessary in order to produce the same functionality as the First Program? |
| --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | -------------------------------------------------------------------------------------------------------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| (a) | the nature and/or extent of the functionality of the First Program; | | | | | | | | |
| (b) | the nature and/or extent of the skill, judgment and labour which has been expended by the author of the First Program in devising the functionality of the First Program; | | | | | | | | |
| (c) | the level of detail to which the functionality of the First Program has been reproduced in the Second Program; | | | | | | | | |
| (d) | if the source code for the Second Program reproduces aspects of the source code of the First Program to an extent which goes beyond that which was strictly necessary in order to produce the same functionality as the First Program? | | | | | | | | |

| 3. | Where the First Program interprets and executes application programs written by users of the First Program in a programming language devised by the author of the First Program which comprises keywords devised or selected by the author of the First Program and a syntax devised by the author of the First Program, is Article 1(2) to be interpreted as meaning that it is not an infringement of the copyright in the First Program for the Second Program to be written so as to interpret and execute such application programs using the same keywords and the same syntax? |
| -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

| 4. | Where the First Program reads from and writes to data files in a particular format devised by the author of the First Program, is Article 1(2) to be interpreted as meaning that it is not an infringement of the copyright in the First Program for the Second Program to be written so as to read from and write to data files in the same format? |
| -- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

| 5. | Does it make any difference to the answer to questions 1, 3 and 4 if the author of the Second Program created the Second Program by:
(a)
observing, studying and testing the functioning of the First Program; or (b)
reading a manual created and published by the author of the First Program which describes the functions of the First Program (‘the Manual’); or (c)
both (a) and (b)? | (a) | observing, studying and testing the functioning of the First Program; or | (b) | reading a manual created and published by the author of the First Program which describes the functions of the First Program (‘the Manual’); or | (c) | both (a) and (b)? |
| --- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------------------------------------------------------------ | --- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --- | ----------------- |
| (a) | observing, studying and testing the functioning of the First Program; or | | | | | | |
| (b) | reading a manual created and published by the author of the First Program which describes the functions of the First Program (‘the Manual’); or | | | | | | |
| (c) | both (a) and (b)? | | | | | | |

| 6. | Where a person has the right to use a copy of the First Program under a licence, is Article 5(3) to be interpreting as meaning that the licensee is entitled, without the authorisation of the rightholder, to perform acts of loading, running and storing the program in order to observe, test or study the functioning of the First Program so as to determine the ideas and principles which underlie any element of the program, if the licence permits the licensee to perform acts of loading, running and storing the First Program when using it for the particular purpose permitted by the licence, but the acts done in order to observe, study or test the First Program extend outside the scope of the purpose permitted by the licence? |
| -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

| 7. | Is Article 5(3) to be interpreted as meaning that acts of observing, testing or studying of the functioning of the First Program are to be regarded as being done in order to determine the ideas or principles which underlie any element of the First Program where they are done:
(a)
to ascertain the way in which the First Program functions, in particular details which are not described in the Manual, for the purpose of writing the Second Program in the manner referred to in question 1 above; (b)
to ascertain how the First Program interprets and executes statements written in the programming language which it interprets and executes (see question 3 above); (c)
to ascertain the formats of data Files which are written to or read by the First Program (see question 4 above); (d)
to compare the performance of the Second Program with the First Program for the purpose of investigating reasons why their performances differ and to improve the performance of the Second Program; (e)
to conduct parallel tests of the First Program and the Second Program in order to compare their outputs in the course of developing the Second Program, in particular by running the same test scripts through both the First Program and the Second Program; (f)
to ascertain the output of the log file generated by the First Program in order to produce a log file which is identical or similar in appearance; (g)
to cause the First Program to output data (in fact, data correlating zip codes to States of the USA) for the purpose of ascertaining whether or not it corresponds with official databases of such data, and if it does not so correspond, to program the Second Program so that it will respond in the same way as the First Program to the same input data. | (a) | to ascertain the way in which the First Program functions, in particular details which are not described in the Manual, for the purpose of writing the Second Program in the manner referred to in question 1 above; | (b) | to ascertain how the First Program interprets and executes statements written in the programming language which it interprets and executes (see question 3 above); | (c) | to ascertain the formats of data Files which are written to or read by the First Program (see question 4 above); | (d) | to compare the performance of the Second Program with the First Program for the purpose of investigating reasons why their performances differ and to improve the performance of the Second Program; | (e) | to conduct parallel tests of the First Program and the Second Program in order to compare their outputs in the course of developing the Second Program, in particular by running the same test scripts through both the First Program and the Second Program; | (f) | to ascertain the output of the log file generated by the First Program in order to produce a log file which is identical or similar in appearance; | (g) | to cause the First Program to output data (in fact, data correlating zip codes to States of the USA) for the purpose of ascertaining whether or not it corresponds with official databases of such data, and if it does not so correspond, to program the Second Program so that it will respond in the same way as the First Program to the same input data. |
| --- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | ---------------------------------------------------------------------------------------------------------------- | --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| (a) | to ascertain the way in which the First Program functions, in particular details which are not described in the Manual, for the purpose of writing the Second Program in the manner referred to in question 1 above; | | | | | | | | | | | | | | |
| (b) | to ascertain how the First Program interprets and executes statements written in the programming language which it interprets and executes (see question 3 above); | | | | | | | | | | | | | | |
| (c) | to ascertain the formats of data Files which are written to or read by the First Program (see question 4 above); | | | | | | | | | | | | | | |
| (d) | to compare the performance of the Second Program with the First Program for the purpose of investigating reasons why their performances differ and to improve the performance of the Second Program; | | | | | | | | | | | | | | |
| (e) | to conduct parallel tests of the First Program and the Second Program in order to compare their outputs in the course of developing the Second Program, in particular by running the same test scripts through both the First Program and the Second Program; | | | | | | | | | | | | | | |
| (f) | to ascertain the output of the log file generated by the First Program in order to produce a log file which is identical or similar in appearance; | | | | | | | | | | | | | | |
| (g) | to cause the First Program to output data (in fact, data correlating zip codes to States of the USA) for the purpose of ascertaining whether or not it corresponds with official databases of such data, and if it does not so correspond, to program the Second Program so that it will respond in the same way as the First Program to the same input data. | | | | | | | | | | | | | | |

B.   On the interpretation of Directive 2001/29/EC of the European Parliament and of the Council of 22 May 2001 on the harmonisation of certain aspects of copyright and related rights in the information society
( 3 ):

| 8. | Where the Manual is protected by copyright as a literary work, is Article 2(a) to be interpreted as meaning that it is an infringement of the copyright in the Manual for the author of the Second Program to reproduce or substantially reproduce in the Second Program any of the following matters described in the Manual:
(a)
the selection of statistical operations which have been implemented in the First Program;. (b)
the mathematical formulae used in the Manual to describe those operations; (c)
the particular commands or combinations of commands by which those operations may be invoked; (d)
the options which the author of the First Program has provide in respect of various commands; (e)
the keywords and syntax recognised by the First Program;. (f)
the defaults which the author of the First Program has chosen to implement in the event that a particular command or option is not specified by the user; (g)
the number of iterations which the First Program will perform in certain circumstances? | (a) | the selection of statistical operations which have been implemented in the First Program;. | (b) | the mathematical formulae used in the Manual to describe those operations; | (c) | the particular commands or combinations of commands by which those operations may be invoked; | (d) | the options which the author of the First Program has provide in respect of various commands; | (e) | the keywords and syntax recognised by the First Program;. | (f) | the defaults which the author of the First Program has chosen to implement in the event that a particular command or option is not specified by the user; | (g) | the number of iterations which the First Program will perform in certain circumstances? |
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --- | ------------------------------------------------------------------------------------------ | --- | -------------------------------------------------------------------------- | --- | --------------------------------------------------------------------------------------------- | --- | --------------------------------------------------------------------------------------------- | --- | --------------------------------------------------------- | --- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --------------------------------------------------------------------------------------- |
| (a) | the selection of statistical operations which have been implemented in the First Program;. | | | | | | | | | | | | | | |
| (b) | the mathematical formulae used in the Manual to describe those operations; | | | | | | | | | | | | | | |
| (c) | the particular commands or combinations of commands by which those operations may be invoked; | | | | | | | | | | | | | | |
| (d) | the options which the author of the First Program has provide in respect of various commands; | | | | | | | | | | | | | | |
| (e) | the keywords and syntax recognised by the First Program;. | | | | | | | | | | | | | | |
| (f) | the defaults which the author of the First Program has chosen to implement in the event that a particular command or option is not specified by the user; | | | | | | | | | | | | | | |
| (g) | the number of iterations which the First Program will perform in certain circumstances? | | | | | | | | | | | | | | |

| 9. | Is Article 2(a) to be interpreted as meaning that it is an infringement of the copyright in the Manual for the author of the Second Program to reproduce or substantially reproduce in a manual describing the Second Program the keywords and syntax recognised by the First Program? |
| -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

---

( 1 )  OJ L 122, p. 42

( 2 )  Directive 2009/24/EC of the European Parliament and of the Council of 23 April 2009 on the legal protection of computer programs (Codified version) (Text with EEA relevance), OJ L 111, p. 16

( 3 )  OJ L 167, p. 10

---