Ram (artificiell intelligens)
Ramar är en artificiell intelligens datastruktur som används för att dela upp kunskap i understrukturer genom att representera " stereotypa situationer". De föreslogs av Marvin Minsky i hans 1974 artikel "A Framework for Representing Knowledge". Ramar är den primära datastrukturen som används i ramspråk för artificiell intelligens; de lagras som ontologier av uppsättningar .
Ramar är också en omfattande del av kunskapsrepresentation och resonemangsscheman . De härrörde ursprungligen från semantiska nätverk och ingår därför i strukturbaserade kunskapsrepresentationer. Enligt Russell och Norvigs "Artificial Intelligence: A Modern Approach" samlar strukturella representationer "[...]fakta om särskilda objekt och händelsetyper och arrangerar typerna i en stor taxonomisk hierarki analogt med en biologisk taxonomi " .
Ramstruktur
Ramen innehåller information om hur du använder ramen, vad du kan förvänta dig härnäst och vad du ska göra när dessa förväntningar inte uppfylls. Viss information i ramen är i allmänhet oförändrad medan annan information, lagrad i "terminaler", vanligtvis ändras. Terminaler kan betraktas som variabler. Ramar på toppnivå bär information, det är alltid sant om problemet, men terminaler behöver inte vara sanna. Deras värde kan ändras med den nya informationen som påträffas. Olika ramar kan dela samma terminaler.
Varje del av information om en viss bildruta hålls i en fack. Informationen kan innehålla:
- Fakta eller datavärden
- (kallas fasetter)
- Rutiner (även kallade procedurbilagor)
- OM NÖDVÄNDS: uppskjuten utvärdering
- IF-ADDED: uppdaterar länkad information
- Ursprungliga värden
- För data
- För procedurer
- Andra ramar eller underramar
Egenskaper och fördelar
En rams terminaler är redan fyllda med standardvärden, som är baserade på hur det mänskliga sinnet fungerar. Till exempel, när en person får höra "en pojke sparkar en boll", kommer de flesta att visualisera en viss boll (som en bekant fotboll ) snarare än att föreställa sig någon abstrakt boll utan attribut.
En särskild styrka med rambaserade kunskapsrepresentationer är att de, till skillnad från semantiska nätverk, tillåter undantag i vissa fall. Detta ger ramar en mängd flexibilitet som gör att representationer av verkliga fenomen kan reflekteras mer exakt.
Precis som semantiska nätverk kan ramar frågas med hjälp av spridningsaktivering. Enligt nedärvningsreglerna kommer alla värden som ges till en lucka som ärvs av delramar att uppdateras (IF-ADDED) till motsvarande luckor i delramarna och alla nya instanser av en viss ram kommer att ha det nya värdet som standard.
Eftersom ramar är baserade på strukturer är det möjligt att generera ett semantiskt nätverk givet en uppsättning ramar även om det saknar explicita bågar. Referenser till Noam Chomsky och hans generativa grammatik från 1950 saknas i allmänhet i Minskys arbete.
Ramarnas förenklade strukturer möjliggör enkla analoga resonemang, en mycket uppskattad egenskap hos alla intelligenta agenter. Procedurbilagor som tillhandahålls av ramar tillåter också en grad av flexibilitet som ger en mer realistisk representation och ger ett naturligt utrymme för programmeringsapplikationer.
Exempel
Värt att notera här är det enkla analoga resonemanget (jämförelsen) som kan göras mellan en pojke och en apa bara genom att ha liknande namngivna slots.
Lägg också märke till att Alex, en instans av en pojke, ärver standardvärden som "Sex" från det mer allmänna föräldraobjektet Boy, men pojken kan också ha olika instansvärden i form av undantag som antalet ben.
Spår | Värde | Typ |
---|---|---|
ALEX | _ | (Denna ram) |
NAMN | Alex | (nyckelvärde) |
ÄR EN | Pojke | (förälder ram) |
SEX | Manlig | (arvsvärde) |
ÅLDER | OM NÖDVÄNDS: Subtrahera (aktuell, FÖDELSEDATUM); | (procedurbilaga) |
HEM | 100 Main St. | (instansvärde) |
FÖDELSEDATUM | 8/4/2000 | (instansvärde) |
FAVORITMAT | Spaghetti | (instansvärde) |
KLÄTTRAR | Träd | (instansvärde) |
KROPPSTYP | Senig | (instansvärde) |
NUM_LEGS | 1 | (undantag) |
Spår | Värde | Typ |
---|---|---|
POJKE | _ | (Denna ram) |
ÄR EN | Person | (förälder ram) |
SEX | Manlig | (instansvärde) |
ÅLDER | Under 12 år. | (procedurbilaga - sätter begränsningar) |
HEM | En plats | (ram) |
NUM_LEGS | Standard = 2 | (standard, ärvt från personramen) |
Spår | Värde | Typ |
---|---|---|
APA | _ | (Denna ram) |
ÄR EN | Primat | (förälder ram) |
SEX | OneOf(Man, Kvinna) | (procedurbilaga) |
ÅLDER | ett heltal | (procedurbilaga - sätter begränsningar) |
LIVSMILJÖ | Standard = Djungel | (standard) |
FAVORITMAT | Standard = Bananer | (standard) |
KLÄTTRAR | Träd | _ |
KROPPSTYP | Standard = Wiry | (standard) |
NUM_LEGS | Standard = 2 | (standard) |
Ramspråk
Ett ramspråk är en teknik som används för kunskapsrepresentation inom artificiell intelligens . De liknar klasshierarkier i objektorienterade språk även om deras grundläggande designmål är olika. Ramar är fokuserade på explicit och intuitiv representation av kunskap medan objekt fokuserar på inkapsling och informationsdöljning . Ramar har sitt ursprung i AI-forskning och objekt främst inom mjukvaruteknik . Men i praktiken överlappar teknikerna och kapaciteterna hos ram- och objektorienterade språk betydligt.
Exempel
Ett enkelt exempel på begrepp som modelleras i ett ramspråk är Friend of A Friend (FOAF)-ontologin definierad som en del av den semantiska webben som en grund för sociala nätverk och kalendersystem. Den primära ramen i detta enkla exempel är en person . Exempel på slots är personens e-post , hemsida, telefon, etc. Varje persons intressen kan representeras av ytterligare ramar som beskriver utrymmet för affärs- och underhållningsdomäner. Sloten vet länkar varje person med andra personer. Standardvärden för en persons intressen kan härledas av nätet av människor som de är vänner till.
Genomföranden
De tidigaste rambaserade språken var specialutvecklade för specifika forskningsprojekt och paketerades inte som verktyg för att återanvändas av andra forskare. Precis som med expertsysteminferensmotorer insåg forskare snart fördelarna med att extrahera en del av kärninfrastrukturen och utveckla ramspråk för allmänna ändamål som inte var kopplade till specifika applikationer . Ett av de första ramspråken för allmänna ändamål var KRL. Ett av de mest inflytelserika tidiga Frame-språken var KL-ONE KL-ONE skapade flera efterföljande Frame-språk. En av de mest använda efterföljarna till KL-ONE var språket Loom utvecklat av Robert MacGregor vid Information Sciences Institute .
På 1980-talet skapade Artificiell Intelligens ett stort intresse i affärsvärlden med hjälp av expertsystem. Detta ledde till utvecklingen av många kommersiella produkter för utveckling av kunskapsbaserade system. Dessa tidiga produkter utvecklades vanligtvis i Lisp och integrerade konstruktioner som IF-THEN-regler för logiska resonemang med ramhierarkier för att representera data. Ett av de mest välkända av dessa tidiga Lisp kunskapsbasverktyg var Knowledge Engineering Environment (KEE) från Intellicorp . KEE tillhandahöll ett fullständigt ramspråk med flera arv, slots, triggers, standardvärden och en regelmotor som stödde kedja bakåt och framåt. Som med de flesta tidiga kommersiella versioner av AI-programvaran distribuerades KEE ursprungligen i Lisp på Lisp- maskinplattformar men portades så småningom till datorer och Unix-arbetsstationer.
Forskningsagendan för den semantiska webben skapade ett förnyat intresse för automatisk klassificering och ramspråk. Ett exempel är Web Ontology Language (OWL) för att beskriva information på Internet. OWL är en standard för att tillhandahålla ett semantiskt lager ovanpå Internet. Målet är att snarare än att organisera webben med nyckelord som de flesta applikationer (t.ex. Google) gör idag kan webben organiseras av begrepp organiserade i en ontologi.
Namnet på OWL-språket i sig är ett bra exempel på värdet av en semantisk webb. Om man skulle söka efter "OWL" med hjälp av Internet idag skulle de flesta sidorna som hämtas vara på fågelugglan snarare än standard OWL . Med en semantisk webb skulle det vara möjligt att specificera konceptet "Web Ontology Language" och användaren skulle inte behöva oroa sig för de olika möjliga akronymerna eller synonymerna som en del av sökningen. På samma sätt skulle användaren inte behöva oroa sig för att homonymer ska fylla sökresultaten med irrelevanta data som information om rovfåglar som i detta enkla exempel.
Förutom OWL inkluderar olika standarder och tekniker som är relevanta för den semantiska webben och påverkades av ramspråk OIL och DAML . Programvaruverktyget Protege Open Source från Stanford University tillhandahåller en ontologiredigeringsmöjlighet som är byggd på OWL och har alla funktioner som en klassificerare . Det upphörde dock att uttryckligen stödja ramar från och med version 3.5 (som bibehålls för de som föredrar ramorientering), den nuvarande versionen 2017 var 5. Motiveringen för att gå från explicita ramar är att OWL DL är mer uttrycksfull och "industristandard".
Jämförelse av ramar och objekt
Ramspråk har en betydande överlappning med objektorienterade språk. Terminologierna och målen för de två gemenskaperna var olika, men när de flyttade från den akademiska världen och labb till den kommersiella världen tenderade utvecklarna att inte bry sig om filosofiska frågor och fokuserade i första hand på specifika förmågor och tog det bästa från båda lägren oavsett var idén var började. Vad båda paradigmen har gemensamt är en önskan att minska avståndet mellan begrepp i den verkliga världen och deras implementering i mjukvara. Som sådana kom båda paradigmen fram till idén att representera de primära mjukvaruobjekten i taxonomier, med början med mycket allmänna typer och vidare till mer specifika typer.
Följande tabell illustrerar korrelationen mellan standardterminologi från de objektorienterade och ramspråksgemenskaperna:
Ramterminologi | OO terminologi |
---|---|
Ram | Objektklass |
Spår | Objektegenskap eller attribut |
Utlösare | Accessor- och mutatormetoder |
Metod (t.ex. vävstol, KEE) | Metod |
Den primära skillnaden mellan de två paradigmen var i graden att inkapsling ansågs vara ett stort krav. För det objektorienterade paradigmet var inkapsling ett av, om inte det mest, kritiska kraven. Önskan att minska den potentiella interaktionen mellan programvarukomponenter och därmed hantera stora komplexa system var en nyckelfaktor för objektorienterad teknologi. För ramspråklägret var detta krav mindre kritiskt än önskan att tillhandahålla ett stort utbud av möjliga verktyg för att representera regler, begränsningar och programmeringslogik. I den objektorienterade världen styrs allt av metoder och metoders synlighet. Så till exempel måste åtkomst till datavärdet för en objektegenskap göras via en accessormetod. Den här metoden kontrollerar saker som att validera datatypen och begränsningar för värdet som hämtas eller ställs in på egenskapen. I ramspråk kan samma typer av begränsningar hanteras på flera sätt. Triggers kan definieras för att aktiveras före eller efter att ett värde ställts in eller hämtats. Regler kunde definieras som hanterade samma typer av begränsningar. Själva luckorna skulle kunna utökas med ytterligare information (kallas "facetter" på vissa språk) igen med samma typ av begränsningsinformation.
Den andra huvudsakliga skillnaden mellan ram- och OO-språk var multipelt arv (som tillåter en ram eller klass att ha två eller flera superklasser). För ramspråk var flera arv ett krav. Detta följer av önskan att modellera världen på det sätt som människor gör, mänskliga konceptualiseringar av världen faller sällan in i stelt definierade icke-överlappande taxonomier. För många OO-språk, särskilt under de senare åren av OO, var enstaka arv antingen starkt önskvärt eller krävt. Multipelt arv sågs som ett möjligt steg i analysfasen för att modellera en domän men något som borde elimineras i design- och implementeringsfaserna i namnet att bibehålla inkapsling och modularitet.
Även om de tidiga ramspråken som KRL inte inkluderade meddelandeöverföring, drivna av utvecklarnas krav, inkluderade de flesta av de senare ramspråken (t.ex. Loom, KEE) möjligheten att definiera meddelanden på ramar.
På den objektorienterade sidan har det också dykt upp standarder som i huvudsak ger den likvärdiga funktionalitet som ramspråk gav, om än i ett annat format och alla standardiserade på objektbibliotek. Till exempel Object Management Group standardiserade specifikationer för funktioner som att associera testdata och begränsningar med objekt (analogt med vanliga användningsområden för fasetter i Frames och begränsningar i Frame-språk som Loom) och för att integrera regelmotorer.
Historia
Det tidiga arbetet med Frames inspirerades av psykologisk forskning som gick tillbaka till 1930-talet som visade att människor använder lagrad stereotyp kunskap för att tolka och agera i nya kognitiva situationer. Termen Frame användes först av Marvin Minsky som ett paradigm för att förstå visuella resonemang och naturlig språkbehandling. I dessa och många andra typer av problem är det potentiella lösningsutrymmet för även det minsta problemet enormt. Till exempel extrahera fonem från en rå ljudström eller detektera kanterna på ett objekt. Saker som verkar triviala för människor är faktiskt ganska komplexa. Faktum är att hur svåra de verkligen var var förmodligen inte helt förstått förrän AI-forskare började undersöka komplexiteten i att få datorer att lösa dem.
Den ursprungliga uppfattningen om ramar eller skript som de också kallades är att de skulle skapa sammanhanget för ett problem och på så sätt automatiskt minska det möjliga sökutrymmet avsevärt. Idén antogs också av Schank och Abelson som använde den för att illustrera hur ett AI-system kunde bearbeta vanliga mänskliga interaktioner som att beställa en måltid på en restaurang. Dessa interaktioner standardiserades som ramar med slots som lagrade relevant information om varje ram. Slots är analoga med objektegenskaper i objektorienterad modellering och med relationer i entitetsrelationsmodeller. Slots hade ofta standardvärden men krävde också ytterligare förfining som en del av exekveringen av varje instans av scenariot. Dvs utförandet av en uppgift som att beställa på en restaurang kontrollerades genom att börja med en grundläggande instans av Frame och sedan instansiera och förfina olika värden efter behov. I huvudsak representerade den abstrakta ramen en objektklass och raminstanserna en objektinstans. I detta tidiga arbete låg tyngdpunkten i första hand på de statiska databeskrivningarna av Frame. Olika mekanismer utvecklades för att definiera intervallet för en slot, standardvärden, etc. Men även i dessa tidiga system fanns det procedurmöjligheter. En vanlig teknik var att använda "triggers" (liknande databaskonceptet triggers ) kopplade till slots. En utlösare är helt enkelt procedurkod som är kopplad till en kortplats. Utlösaren kan aktiveras antingen före och/eller efter att ett slotvärde nås eller modifierats.
Precis som med objektklasser organiserades ramar i subsumtionshierarkier . En grundläggande ram kan till exempel vara att beställa på en restaurang. Ett exempel på det skulle vara att Joe går till McDonald's. En specialisering (i huvudsak en underklass ) av restaurangramen skulle vara en ram för beställning på en snygg restaurang. Den snygga restaurangramen skulle ärva alla standardvärden från restaurangramen men skulle också antingen lägga till fler luckor eller ändra ett eller flera av standardvärdena (t.ex. förväntat prisintervall) för den specialiserade ramen.
språk
Mycket av den tidiga frame-språkforskningen (t.ex. Schank och Abelson) hade drivits av fynd från experimentell psykologi och försök att designa kunskapsrepresentationsverktyg som motsvarade de mönster som människor ansågs använda för att fungera i dagliga uppgifter. Dessa forskare var mindre intresserade av matematisk formalitet eftersom de trodde att sådana formalismer inte nödvändigtvis var bra modeller för hur den genomsnittliga människan uppfattar världen. Sättet som människor använder språk till exempel är ofta långt ifrån riktigt logiskt.
På liknande sätt, inom lingvistik, började Charles J. Fillmore i mitten av 1970-talet arbeta med sin teori om ramsemantik , som senare skulle leda till beräkningsresurser som FrameNet . Ramsemantik motiverades av reflektioner kring mänskligt språk och mänsklig kognition.
Forskare som Ron Brachman ville å andra sidan ge AI-forskare den matematiska formalism och beräkningskraft som var förknippad med logik. Deras mål var att kartlägga Frame-klasserna, slots, begränsningar och regler i ett Frame-språk för att sätta teori och logik. En av fördelarna med detta tillvägagångssätt är att valideringen och till och med skapandet av modellerna kan automatiseras med hjälp av teoremprovare och andra automatiserade resonemangsmöjligheter. Nackdelen var att det kunde vara svårare att initialt specificera modellen i ett språk med en formell semantik.
Denna utveckling illustrerar också en klassisk klyfta inom AI-forskning som kallas " prydliga vs. scruffies" . De "prydliga" var forskare som satte mest värde på matematisk precision och formalism som kunde uppnås via First Order Logic och Set Theory . "Skaffarna" var mer intresserade av att modellera kunskap i representationer som var intuitiva och psykologiskt meningsfulla för människor.
Det mest anmärkningsvärda av de mer formella tillvägagångssätten var KL-ONE- språket. KL-ONE fortsatte senare med att skapa flera efterföljande Frame-språk. Den formella semantiken för språk som KL-ONE gav dessa ramspråk en ny typ av automatiserad resonemangsförmåga känd som klassificeraren . Klassificeraren är en motor som analyserar de olika deklarationerna i ramspråket: definitionen av mängder, delmängder, relationer etc. Klassificeraren kan då automatiskt härleda olika ytterligare relationer och kan upptäcka när vissa delar av en modell är inkonsekventa med varandra. På detta sätt kan många av de uppgifter som normalt skulle utföras genom att kedja framåt eller bakåt i en inferensmotor istället utföras av klassificeraren.
Denna teknik är särskilt värdefull för att hantera Internet. Det är ett intressant resultat att formalismen i språk som KL-ONE kan vara mest användbar när man hanterar den mycket informella och ostrukturerade data som finns på Internet. På Internet är det helt enkelt inte möjligt att kräva att alla system ska standardisera på en datamodell. Det är oundvikligt att terminologi kommer att användas i flera inkonsekventa former. Klassificeringsmotorns automatiska klassificeringsförmåga ger AI-utvecklare en kraftfull verktygslåda som hjälper till att skapa ordning och konsistens i en mycket inkonsekvent insamling av data (dvs. Internet). Visionen för ett förbättrat Internet, där sidor ordnas inte bara efter textnyckelord utan genom klassificering av begrepp kallas den semantiska webben . Klassificeringsteknik som ursprungligen utvecklades för ramspråk är en viktig möjliggörare för den semantiska webben. Klyftan "prydliga vs. scruffies" uppstod också i semantisk webbforskning, som kulminerade i skapandet av Linking Open Data- communityn – deras fokus låg på att exponera data på webben snarare än att modellera.
Se även
- Deduktiv klassificerare
- Beskrivningslogik
- Faktum
- Första ordningens logik
- Ramproblem
- Kunskap
- Kunskapsbas
- Kunskapsbaserat system
- Ontologispråk
- Predikat
- Semantik
- Semantiskt nätverk
- Situationskalkyl
- Sanning
Bibliografi
- Russell, Stuart J.; Norvig, Peter (2010), Artificial Intelligence: A Modern Approach (2nd ed.), Upper Saddle River, New Jersey: Prentice Hall, ISBN 0-13-604259-7 , kap. 1.
- Marvin Minsky, A Framework for Representing Knowledge , MIT-AI Laboratory Memo 306, juni, 1974.
- Daniel G. Bobrow, Terry Winograd, An Overview of KRL, A Knowledge Representation Language [ permanent död länk ] , Stanford Artificial Intelligence Laboratory Memo AIM 293, 1976.
- R. Bruce Roberts och Ira P. Goldstein, The FRL Primer , 1977
- R. Bruce Roberts och Ira P. Goldstein, The FRL Manual , 1977
- Brachman, R.; Schmolze, J. (1985). "En översikt över KL-ONEs kunskapsrepresentationssystem" . Kognitionsvetenskap . 9 (2): 171–216. doi : 10.1016/s0364-0213(85)80014-8 .
- Fikes, RE; Kehler, T. (1985). "Rambaserad representations roll i kunskapsrepresentation och resonemang". Kommunikation från ACM . 28 (9): 904–920. doi : 10.1145/4284.4285 . S2CID 9868560 .
- Peter Clark & Bruce Porter: KM - The Knowledge Machine 2.0: User Manual, http://www.cs.utexas.edu/users/mfkb/RKF/km.html .
- Peter D. Karp, The Design Space of Frame Knowledge Representation Systems , Technical Note 520. Artificial Intelligence Center , SRI International , 1992