Natursproget programmering - Natural-language programming

Natursproget programmering ( NLP ) er en ontologi- assisteret måde at programmere i form af natursprogede sætninger, f.eks. Engelsk . Et struktureret dokument med indhold, sektioner og undersektioner til forklaringer af sætninger danner et NLP -dokument, som faktisk er et computerprogram . Naturlige sprog og naturligt sprogede brugergrænseflader omfatter Inform 7 , et naturligt programmeringssprog til at lave interaktiv fiktion, Shakespeare , et esoterisk naturligt programmeringssprog i stil med William Shakespeares skuespil , og Wolfram Alpha , en beregningsmæssig vidensmotor, der bruger natur- sprogindgang. Nogle metoder til programsyntese er baseret på programmering på naturligt sprog.

Fortolkning

Den mindste erklæringsenhed i NLP er en sætning. Hver sætning angives i begreber fra den underliggende ontologi, attributter i denne ontologi og navngivne objekter med store bogstaver . I en NLP-tekst kompileres hver sætning entydigt til et procedurekald i det underliggende programmeringssprog på højt niveau, såsom MATLAB , Octave , SciLab , Python osv.

Symbolsprog som Wolfram Language er i stand til at fortolke behandling af forespørgsler efter sætninger. Dette kan tillade interaktive anmodninger som dem, der er implementeret i Wolfram Alpha . Forskellen mellem disse og NLP er, at sidstnævnte opbygger et enkelt program eller et bibliotek af rutiner, der er programmeret gennem naturlige sprogsætninger ved hjælp af en ontologi, der definerer de tilgængelige datastrukturer i et programmeringssprog på højt niveau.

En eksempeltekst fra et engelsksproget natursproget program er som følger:

Hvis U_ er 'smc01-control', skal du gøre følgende. Definer overfladevægte Alpha som "[0,5, 0,5]". Initialiser matrix Phi som en 'enhedsmatrix'. Definer J som 'inertimatrix' for Spc01. Beregn matrix J2 som invers af J. Beregn positionshastighedsfejl Ve og vinkelhastighedsfejl Oe fra dynamisk tilstand X, vejledningsreference Xnow. Definer ledglidefladen G2 ud fra positionshastighedsfejl Ve og vinkelhastighedsfejl Oe ved hjælp af overfladevægtene Alpha. Beregn den udglattede tegnfunktion SG2 fra ledglidefladen G2 med tegnterskel 0,01. Beregn speciel dynamisk kraft F fra dynamisk tilstand X og overfladevægte Alpha. Beregn styremoment T og styrekraft U fra matrix J2, overfladevægte Alpha, speciel dynamisk kraft F, udglattet skiltfunktion SG2. Afslut betingede handlinger.

der definerer et feedback -kontrolskema ved hjælp af en glidemodus -kontrolmetode .

Software paradigme

Natursproget programmering er en top-down metode til at skrive software. Dens faser er som følger:

  • Definition af en ontologi  - taksonomi - af begreber, der er nødvendige for at beskrive opgaver i det behandlede emne. Hvert koncept og alle deres egenskaber er defineret i ord med natursprog. Denne ontologi vil definere de datastrukturer, NLP kan bruge i sætninger.
  • Definition af en eller flere sætninger på topniveau med hensyn til begreber fra ontologien. Disse sætninger bruges senere til at påberåbe sig de vigtigste aktiviteter i emnet.
  • Definition af hver af de øverste sætninger i form af en sætningssekvens.
  • Definere hver af de lavere sætninger i form af andre sætninger eller ved en simpel sætning med formularen Udfør kode "...". hvor ... står for en kode med hensyn til det tilhørende programmeringssprog på højt niveau.
  • Gentag det foregående trin, indtil du ikke har nogen sætninger tilbage udefineret. Under denne proces kan hver af sætninger klassificeres til at tilhøre en sektion af det dokument, der skal produceres i HTML- eller Latex-format for at danne det endelige natursproget program.
  • Test af betydningen af ​​hver sætning ved at udføre dens kode ved hjælp af testobjekter.
  • Tilvejebringelse af et bibliotek med procedurekald (i det underliggende sprog på højt niveau), som er nødvendige i kodedefinitionerne af nogle betydninger med lav sætning.
  • Tilvejebringelse af en titel, forfatterdata og sammensætning af sætningerne til en HTML- eller LaTex -fil.
  • Udgivelse af det naturlige sprogprogram som en webside på Internettet eller som en PDF- fil, der er udarbejdet fra LaTex-dokumentet.

Publikationsværdi af programmer og dokumenter på naturligt sprog

Et natursproget program er en præcis formel beskrivelse af en procedure, som dens forfatter har oprettet. Det kan læses af mennesker, og det kan også læses af en passende softwareagent. For eksempel kan en webside i et NLP -format læses af en softwares personlig assistentagent for en person, og hun eller han kan bede agenten om at udføre nogle sætninger, dvs. udføre en opgave eller besvare et spørgsmål. Der er en læseragent tilgængelig til engelsk fortolkning af HTML -baserede NLP -dokumenter, som en person kan køre på sin personlige computer .

Bidrag af natursproget programmer til maskinkendskab

En ontologiklasse er et natursproget program, der ikke er et begreb i den forstand, da mennesker bruger begreber. Begreber i en NLP er eksempler (prøver) på generiske menneskelige begreber. Hver sætning i et natursproget program er enten (1) angiver et forhold i en verdensmodel eller (2) udfører en handling i miljøet eller (3) udfører en beregningsprocedure eller (4) påkalder en svaremekanisme som reaktion til et spørgsmål.

Et sæt NLP -sætninger, med tilhørende ontologi defineret, kan også bruges som en pseudokode , der ikke giver detaljerne i et underliggende programmeringssprog på højt niveau. I en sådan applikation bliver de anvendte sætninger til abstraktioner på et højt niveau (konceptualiseringer) af databehandlingsprocedurer, der er computersprog og maskinuafhængige.

Se også

Programmeringssprog med engelsk-lignende syntaks

Referencer

Bibliografi

Bøger
Papirer ved konferencer
  • Veres, SM; Molnar, L. (2010). "Dokumenter for intelligente agenter på engelsk". Kunstig intelligens og applikationer . doi : 10.2316/s.2010.674-122 . ISBN 978-0-88986-817-5.
  • Glidefunktionskontrol af autonome rumfartøjer. (halvt skrevet på engelsk) af SM Veres en NK Lincoln, Proc. TAROS'2008, Mod autonome robotsystemer , Edinburgh, 1-3 september 2008.
  • Veres, Sandor M. (2010). "Missionskapable autonome kontrolsystemer i havene, i luften og i rummet". Hjerneinspireret informationsteknologi . Studier i Computational Intelligence. 266 . s. 1-10. doi : 10.1007/978-3-642-04025-2_1 . ISBN 978-3-642-04024-5.
  • Pulido-Prieto, Oscar; Juárez-Martínez, Ulises (2017). "En undersøgelse af naturalistiske programmeringsteknologier". ACM Computing Surveys . 50 (5): 1–35. doi : 10.1145/3109481 . S2CID  2078759 .
Programsyntese ud fra naturlige sprogspecifikationer

eksterne links