Dette indlæg er alene udtryk for skribentens egen holdning.

Et (rigtigt) software patent

28 kommentarer.  Hop til debatten
Blogindlæg18. maj 2011 kl. 22:27
errorÆldre end 30 dage

Jeg stødte ind i en pudsighed vedr. et software patent idag:

Prøv at hente USA patent 4,660,150, f.eks på www.pat2pdf.org

Det drejer sig om et patent Hewlett Packard udtog i 1987 på nogle funktionaliteter i en spektrum analysator, I kan roligt læse det, det kommer I ikke i juridiske problemer med.

Læg så mærke til hvad der sker på (pdf) side 24 i patentet: Kildeteksten er vedhæftet som appendix.

Artiklen fortsætter efter annoncen

Her kunne vi så starte en lang diskussion om hvad forskel det måtte gøre og om kildeteksten er en del af beskrivelsen, eller om den har en anden status relativt til patentet.

Vi kunne også diskutere om ikke det var meget rimeligt, at hvis vi ikke kan slippe for softwarepatenter, skal kildeteksten til dem offentliggøres.

Men de diskussioner kan vi ligeså godt tage en anden dag, når en eller anden passende nyhed bringer det på bane.

Det jeg synes er interessant ved det her patents kildetekst er noget helt andet: Hvad er det for et programmeringssprog ?

Artiklen fortsætter efter annoncen

![Eksternt billede](/modules/xphoto/cache/75/8875_447_434_0_0_0_0.png" alt=")

phk

28 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
2
18. maj 2011 kl. 23:13

Jeg ville kalde det en FORTRAN/Pascal-lignende pseudo-kode.

(Pseudo for med google kan jeg ikke finde noget der ligner, bortset fra i et lignende HP-patent, 4,649,496).

Og til diskussionen en anden dag: Angående en egentlig kode (som altså kan forstås af en computer) vil jeg mene at en implementering af en ide ikke burde beskyttes af et patent men derimod af ophavsret.

3
18. maj 2011 kl. 23:35

"Vi kan nævne at sproget aldrig har været brugt i Danmark..."

Poul-Henning

5
19. maj 2011 kl. 08:22

At skrive macro'er til ovenstående kode, således programmet kan oversættes til noget meningsfyldt.

6
19. maj 2011 kl. 08:27

Dette er SPL.

Jeg tror det blev kun brugt til deres HP3000.

Mvh, /björn

7
19. maj 2011 kl. 08:48

Det er ikke SPL.

Poul-Henning

11
19. maj 2011 kl. 09:35

Det er ikke Pascal eller Modula, for de bruger begge "var id : type", hvor ovenstående bruger "type id". Men ellers ligner det ganske rigtigt en del. Mit gæt havde også været SPL, da det netop bruger "type id" erklæringer, men ellers ligner Pascal en del.

Det er klart et sprog i Algol familien, men ikke Algol 68, da det bruger små bogstaver i nøgleord. Algol W har været brugt i Danmark, så PHK's erklæring om det modsatte udelukker det. Der er masser af Algol varianter rundt omkring, så det kan blive lidt svært at finde den "rigtige" variant.

9
19. maj 2011 kl. 09:14

..Algol.

10
19. maj 2011 kl. 09:29

Det er næsten ALGOL.

Det helt rigtige svar er: "WHEELGOL"

Forklaringen findes på denne side:

http://www.hp9825.com/html/hybrid_microprocessor.html

HP’s Santa Rosa Division used the hybrid microprocessor as the heart of its HP 8566A and 8568A spectrum analyzers. In fact, development of the HP 8566A and 8568A started before the first hybrid processor was made, so the early prototypes of these analyzers used an HP 2100A minicomputer as the control processor. The engineers at HP Santa Rosa, in particular Lynn Wheelright, had a preference for Algol, a structured high-level language that was popular in the 1970s. Wheelright developed a compiler for the hybrid microprocessor as well, an an Algol variant that he dubbed “Wheelgol.” HP owned up to programming the spectrum analyzers in Algol, but kept the name “Wheelgol” under wraps. Later, when the HP 8566A and 8568A spectrum analyzer designs migrated to the Motorola 68000 microprocessor, Wheelright found it very easy to change the compiler’s back end to target the newer microprocessor.

Poul-Henning

12
19. maj 2011 kl. 09:37

Var faktisk overrasket over at se kredsløbsdiagrammer; jeg troede de normalt ville forholde sig mere abstrakt i en patent-ansøgning.

13
19. maj 2011 kl. 10:19

Hvis du checker de 4 patenter der er referencer til som prior art, vil du finde at de stort set sendte vedligeholdelsesmanaualen ind som patent ansøgning. Det er på flere hundrede sider med diagrammer og firmware kode.

14
19. maj 2011 kl. 11:40

Mht. "kildeteksten er en del af beskrivelsen, eller om den har en anden status relativt til patentet" Det er min erfaring, som patentagent - nu hader I mig - at det ikke er vanligt at kildekoden er med i software patenter.

Grundene er:

  1. softwaren er ofte ikke skrevet endnu
  2. softwaren, som beskyttes, kan implementeres via mange forskellige kildekoder

Endvidere vil beskyttelsen - fra patentet - fremgå, som udgangspunkt, ud fra kravene (claims)

16
19. maj 2011 kl. 16:28

Det er min erfaring, som patentagent - nu hader I mig

Well... for en gangs skyld kom du da med et sagligt indlæg. Ikke at der var meget kød på det. Hvad du skrev burde ikke komme bag på nogen, der blot har beskæftiget sig en smule med softwarepatenter.

Ofte er softwaren jo slet ikke skrevet, fordi der blot er tale om et patent på en abstrakt ide - som f.eks. at "streame video over et netværk". (EP 0933892) Mig bekendt har ingen set det produkt der angiveligt skulle være "opfunden".

15
19. maj 2011 kl. 12:28

Det er min erfaring, som patentagent - nu hader I mig - at det ikke er vanligt at kildekoden er med i software patenter.

Det er faktisk temmeligt synd det ikke forholder sig sådan at kildekoden skal være tilgængelig. For det første så viser det at man faktisk har gjort et stykke arbejde og implementeret ideen i stedet for bare at have den som en ide. Specielt i forbindelse med hele diskussionen om at "softwarepatenter er matematik".

Teknisk set burde man kunne abstrahere fra at der er tale om en bestemt kildekode skrevet i et bestemt sprog. Men det ville nok være alt for konkretiseret og det ville gøre at mange af patenterne ikke havde samme håndhævelseskraft. Som udgangspunkt skal du nemlig så vise at patentet omfatter koden som andre har skrevet og det er et rimeligt centralt claim.

Hatten af for at vedhæfte kildekoden til patentet.

18
20. maj 2011 kl. 13:15

Teknisk set burde man kunne abstrahere fra at der er tale om en bestemt kildekode skrevet i et bestemt sprog.

Det kunne være fedt, hvis der fandtes en generel metode til at bevise at den observerede semantik i program A og B er den samme uanset input.

19
20. maj 2011 kl. 16:36

Det kunne være fedt, hvis der fandtes en generel metode til at bevise at den observerede semantik i program A og B er den samme uanset input.

Det gør der ikke. Bevis:

Jeg har et program, A:

while(true) {};

Øjensynligt standser program A ikke. Jeg har nu program B som jeg ikke kender. Jeg spørger nu mit analyseprogram "Er A og B ens?". Mit analyseprogram kan dermed løse standsningsproblemet (the halting problem). Og det er ikke afgørligt.

Du kan godt vise det i specialtilfælde, men ovenstående viser at problemet er mindst lige så svært som halting :)

20
20. maj 2011 kl. 18:55

Det gør der ikke.

Tak for beviset. Det kan vel overføres til softwarepatenter: Hvordan afgør man (generelt) om et softwarepatent er benyttet eller ej, selv hvis vi antager at beskrivelsen er ligeså utvetydig og klar som kildekode? Måske virker de kun pga. tvetydige og vage beskrivelser, som indfanger en mængde af konkrete implementationer modulus juristernes fortolkningsevne.

23
23. maj 2011 kl. 10:19

Tak for beviset. Det kan vel overføres til softwarepatenter: Hvordan afgør man (generelt) om et softwarepatent er benyttet eller ej, selv hvis vi antager at beskrivelsen er ligeså utvetydig og klar som kildekode?

Uanset hvilken form specifikationen har, er det formelt set uafgørligt at se, om programmer svarer til specifikationen. Det er en konsekvens af Rice's sætning, der siger at i et turingkomplet sprog er alle ikke-trivielle ekstensionelle (semantiske) egenskaber ved programmer uafgørlige. Og der er kun to trivielle ekstensionelle egenskaber: Den, der er opfyldt af alle programmer og den, der er opfyldt af ingen programmer.

Men det betyder ikke, at det er håbløst at bevise programækvivalens eller, at et program opfylder en specifikation. Det er gjort masser af gange. Men man skal blot være opmærksom på, at det ikke altid kan lade sig gøre, og at det ikke nødvendigvis er fordi man er dum.

Dertil kommer, at man kan lave programmeringssprog, hvor ækvivalens er afgørligt. De er så bare ikke turingkomplette. Som et eksempel, er ækvivalens af datalog-programmer afgørligt.

24
Indsendt af Anonym (ikke efterprøvet) den man, 05/23/2011 - 12:37

Hej PHK,

Kildekoden kan sagtens angives i en patentansøgning, ofte er det en god ide at gøre dette i især en US-ansøgning, så der er "enablement" = et eller flere eksempler på, hvordan fagmanden vil kunne udføre opfindelsen, hvilket USPTO generelt kræver.

Ofte vil man dog ikke gøre det for ikke at hjælpe sine konkurrenter mere end det højst nødvendigt, den egentlige kode er jo tit skjult ved kryptering osv.

For at besvare dit spørgsmål, så afgrænses patentet af, hvad fagmanden kan læse ud af kravene, hvor en fagmand er en, som kan læse et patent, (kurser afholdes gerne) og kender til programmering bredt) og hvad en dommer skal kunne forholde sig til, givet fagmandens tolkning.

Kravene finder du under "Claims", krav 1 og 2 (begge uafhængige krav) og det drejer sig, hvad jeg kan se af et hurtigt scan, om et apparat og en metode (en processor og et softwareprogram, der udføres af nogle procestrin ~ funktioner), der udfører en frekvensmåling ved hjælp af brugerinput og et sweep-signal. Har du noget specifikt, du skal anvende patentet til?, så vil jeg da gerne tilbyde at hjælpe med at læse og tolke patentet.

Som bonusinfo: Så kan jeg se, at det er et ældre patent fra '87, hvor man jo her i software-patenternes barndom ikke helt vidste, hvad USPTO krævede for at udstede et patent, og derfor har HP nok taget koden med. Normalt vil man nu blot i funktionelle termer beskrive kodens funktioner, ofte i trin (ikke nødvendigvis på hinanden følgende) og med en teknisk effekt beskrevet helt tydeligt, givet de nyeste US højesteretsafgørelser om softwarepatenter.

I Europa (EP) skal man ofte fokusere på nyttevirkningen af opfindelsen, og derfor skal den tekniske effekt fremgå af beskrivelsen som noget af det vigtigste. Sådan bliver kravene tit mindre vage i EP end de normalt gør i US for den samme opfindelse.

MVH Louise

25
23. maj 2011 kl. 14:12

Har du noget specifikt, du skal anvende patentet til?

Jeg tror nok at den dag PHK kaster sig over brugen af softwarepatenter bliver samme dag som grise lærer at flyve ved egen hjælp.

27
Indsendt af Anonym (ikke efterprøvet) den man, 05/23/2011 - 14:22

Tja, det kunne jo være, at nogle ækle patent-trolde var kommet efter PHK eller hans programmer :-) Så kan enhver stå og få brug for at holde en patent-agent i hånden ;-) (Uhadadada....)

26
Indsendt af Anonym (ikke efterprøvet) den man, 05/23/2011 - 14:22

Tja, det kunne jo være, at nogle ækle patent-trolde var kommet efter PHK eller hans programmer :-) Så kan enhver stå og få brug for at holde en patent-agent i hånden ;-) (Uhadadada....)

21
22. maj 2011 kl. 07:22

Så vidt jeg kan se er dette IKKE Turbo Pascal, for der skal procedurens parametre stå i en stor parentes, men jeg mener at ku huske at alm. Pascal, der var ikke denne parantes.

Jeg har brugt flere versioner i 1990-1995, den sidste var Borland Turbo Pascal. Lavede også nogle programmer på Amigaen, og de ku direkte compiles på pc, som havde Turbo Pascal, Borland.

22
23. maj 2011 kl. 10:02

Sig mig engang, læser du ikke en tråd til ende inden du kommer med et indlæg?

Det er ikke Pascal. Det er en Algol-variant (Wheelgol). Det ville du vide hvis du havde læst hele tråden - PHK har citeret det sted i patentet hvor sløres løftes (det gjorde han allerede i torsdags).

17
19. maj 2011 kl. 16:34

Så patentet bør indeholde pseudokode, samt en specifikation af hvilke sprog-features er nødvendige?

8
19. maj 2011 kl. 09:11

Nu er det naturligvis lidt snyd at læse mere af patentet, men nederst side 23 til højre står der:

These programs are written in the ALGOL language, and can be compiled to run on any appropriate processor.

2
18. maj 2011 kl. 23:06

Det er godt nok mere end 10 år siden jeg har rodet med det sidst, men i min optik ligner det Pascal.

Hints:

; som afslutning af linje := ved tildeling af værdier til variable

med venlig hilsen

Kristian