Et (rigtigt) software patent

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.

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 ?

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

phk

Kommentarer (28)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Kristian Poulsen

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

  • 0
  • 0
#3 Lars Kr. Lundin

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.

  • 0
  • 0
#9 Jens Svalgaard Kohrt

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.

  • 0
  • 0
#11 Poul-Henning Kamp Blogger

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

  • 0
  • 0
#12 Torben Mogensen Blogger

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.

  • 0
  • 0
#14 Poul-Henning Kamp Blogger

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.

  • 0
  • 0
#15 Mogens Ludvigsen

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)

  • 0
  • 0
#16 Jesper Louis Andersen

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.

  • 0
  • 0
#17 Peter Mogensen

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".

  • 0
  • 0
#20 Jesper Louis Andersen

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 :)

  • 0
  • 0
#21 Bjarke Walling

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.

  • 0
  • 0
#22 Jan Harries

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.

  • 0
  • 0
#23 Jesper Poulsen

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).

  • 0
  • 0
#24 Torben Mogensen Blogger

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.

  • 0
  • 0
#25 Anonym

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

  • 0
  • 0
Log ind eller Opret konto for at kommentere