Cadru (inteligență artificială)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Cadrele sunt structuri de date utilizate în inteligența artificială în contextul reprezentării cunoștințelor . Conceptul a fost introdus de Marvin Minsky în 1974 în articolul Un cadru pentru reprezentarea cunoașterii . Cadrele vă permit să împărțiți cunoștințele în sub-structuri care reprezintă „situații stereotipate”.

Cadrele constituie structura primară de date a limbajelor de cadre utilizate în inteligența artificială.

Structura cadrului

Cadrul conține informații despre modul de utilizare a cadrului, la ce să ne așteptăm în continuare și la ce să facem atunci când aceste așteptări nu sunt îndeplinite. Unele informații din cadru sunt, în general, neschimbate, în timp ce alte informații, stocate în „terminale”, se modifică de obicei. Terminalele pot fi considerate variabile. Cadrele de primul nivel conțin informații, ceea ce este întotdeauna adevărat pentru problema în cauză, cu toate acestea, terminalele nu trebuie să fie adevărate. Valoarea acestora se poate modifica odată cu noile informații întâlnite. Diferite cadre pot partaja aceleași terminale.

Orice informație despre un anumit cadru este conținută într-un slot. Informațiile pot conține:

  • Fapte sau date
    • Valori (numite fațete)
  • Proceduri (denumite și atașamente procedurale)
    • DACĂ ESTE NECESAR: evaluare amânată
    • DACĂ SE ADĂUGĂ: actualizează informațiile legate
  • Valori implicite
    • Pentru date
    • Pentru proceduri
  • Alte cadre sau sub-cadre

Caracteristici și Beneficii

Terminalele unui cadru sunt deja umplute cu valori predefinite, care se bazează pe modul în care funcționează mintea umană. De exemplu, atunci când unei persoane i se spune „un băiat bate cu piciorul la o minge”, majoritatea oamenilor vor vizualiza o anumită minge (cum ar fi o minge de fotbal familiară), mai degrabă decât să-și imagineze o minge abstractă fără atribute.

O forță deosebită a reprezentărilor de cunoștințe bazate pe cadre este că, spre deosebire de rețelele semantice, acestea permit excepții în cazuri particulare. Aceasta oferă cadrelor o flexibilitate care permite reflectarea mai precisă a reprezentărilor fenomenelor din lumea reală.

La fel ca rețelele semantice, cadrele pot fi interogate folosind activarea răspândirii. Urmând regulile de moștenire, orice valoare dată unui slot moștenit din sub-cadre va fi actualizată (IF-ADDED) la sloturile corespunzătoare din sub-cadre și fiecare nouă instanță a unui anumit cadru va avea ca valoare implicită noua valoare.

Deoarece cadrele se bazează pe structuri, este posibil să se genereze o rețea semantică având un set de cadre chiar dacă nu are margini explicite. Referința la Noam Chomsky și la gramatica sa generativă din anii 1950 este în general absentă în publicațiile lui Minsky. Cu toate acestea, forța semantică provine din acel concept.

Structurile de cadre simplificate permit raționamentul analogic ușor, o caracteristică foarte apreciată de orice agent inteligent. Atașamentele procedurale furnizate de cadre permit, de asemenea, un grad de flexibilitate care face reprezentarea mai realistă și oferă un avantaj natural pentru programarea aplicațiilor.

Exemplu

Merită menționat aici simplul raționament analogic (comparație) care se poate face între un băiat și o maimuță pur și simplu având sloturi denumite în mod similar.

De asemenea, rețineți că Alex, o instanță a unui băiat, moștenește valori implicite precum „Sex” de la obiectul părinte mai general „Băiat”, dar băiatul poate avea și valori diferite ale instanței sub formă de excepții, cum ar fi numărul de picioare .

Slot Valoare Tip
ALEX _ (acest cadru)
NUME Alex (valoare cheie)
E O Băiat (cadru principal)
SEX Masculin (valoare ereditară)
VÂRSTĂ DACĂ ESTE NECESAR: Scădeți (curent, DATA NAȘTERII) (anexă procedurală)
ACASĂ Via Rossi nr. 100 (valoarea instanței)
DATA DE NASTERE 04.08.2000 (valoarea instanței)
MÂNCARE FAVORITĂ Spaghete (valoarea instanței)
A URCA Copaci (valoarea instanței)
TIP CORP Uscat (valoarea instanței)
NUM_ PICI 1 (excepție)
Slot Valoare Tip
BĂIAT _ (Acest cadru)
E O Persoană (cadru principal)
SEX Masculin (valoarea instanței)
VÂRSTĂ Sub 12 ani. (anexă procedurală - impozit constrângere)
ACASĂ Un loc (cadru)
NUM_ PICI Implicit = 2 (implicit, moștenit din cadrul Persoanei)
Slot Valoare Tip
MAIMUŢĂ _ (Acest cadru)
E O Tu primul (cadru principal)
SEX OneOf (bărbat, femeie) (anexă procedurală)
VÂRSTĂ un număr întreg (anexă procedurală - impozit constrângere)
HABITAT Implicit = jungla (Mod implicit)
MÂNCARE FAVORITĂ Implicit = banane (Mod implicit)
DUTE SUS Copaci _
TIP CORP Implicit = Wiry (Mod implicit)
NUM_ PICI Implicit = 2 (Mod implicit)

Limbajul cadrelor

Un limbaj cadru este o tehnologie utilizată pentru reprezentarea cunoștințelor în inteligența artificială. Acestea sunt similare ierarhiilor de clasă în limbaje orientate obiect, deși obiectivele lor fundamentale de proiectare sunt diferite. Cadrele se concentrează pe reprezentarea explicită și intuitivă a cunoștințelor, în timp ce obiectele se concentrează doar pe încapsulare și ascunderea informațiilor. Cadrele provin din cercetarea inteligenței artificiale și obiecte în principal în ingineria software. Cu toate acestea, în practică, tehnicile și capacitățile limbajelor cadru și orientate obiect se suprapun semnificativ.

Exemplu

Un exemplu simplu de concepte modelate într-un limbaj cadru este ontologia Prietenul unui prieten (FOAF) definită ca parte a Web-ului semantic ca bază pentru rețelele sociale și sistemele calendaristice. Cadrul principal din acest exemplu simplu este o persoană . Exemplele de sloturi sunt adresa de e- mail a persoanei, pagina de pornire, telefonul etc. Interesele fiecărei persoane pot fi reprezentate de cadre suplimentare care descriu spațiul domeniilor de afaceri și de divertisment. Slotul știe că conectează fiecare persoană cu alte persoane. Valorile implicite pentru interesele unei persoane pot fi deduse din rețeaua de persoane cu care sunt prieteni [1] .

Implementări

Primele limbaje bazate pe cadre au fost personalizate pentru proiecte de cercetare specifice și nu au fost ambalate ca instrumente care să fie reutilizate de alți cercetători. La fel ca în cazul motoarelor de inferență de sistem expert, cercetătorii au realizat rapid beneficiile extragerii unei părți a infrastructurii de bază și a dezvoltării limbajelor de cadre generice care nu sunt asociate cu aplicații specifice. Unul dintre primele limbaje-cadru de uz general a fost KRL [2] . Unul dintre cele mai influente limbaje cadru timpurii a fost KL-ONE, care a generat mai multe limbaje cadru succesive [3] . Unul dintre cei mai utilizați succesori ai KL-ONE a fost limbajul Loom dezvoltat de Robert MacGregor la Institutul de Științe ale Informației [4] .

În anii 1980, inteligența artificială a generat un mare interes în lumea afacerilor alimentată de sisteme expert. Acest lucru a condus la dezvoltarea a numeroase produse comerciale pentru dezvoltarea sistemelor bazate pe cunoaștere. Aceste produse timpurii au fost dezvoltate de obicei în Lisp și construcții integrate, cum ar fi regulile IF-THEN pentru raționament logic cu ierarhii de cadre pentru reprezentarea datelor. Unul dintre cele mai cunoscute instrumente de bază a cunoștințelor Lisp a fost Mediul de inginerie a cunoștințelor (KEE) al Intellicorp. KEE a furnizat un limbaj complet de cadre cu mai multe moșteniri, sloturi, declanșatoare, implicite și un motor de reguli care a susținut înlănțuirea înainte și înapoi. La fel ca în majoritatea versiunilor comerciale timpurii ale software-ului AI, KEE a fost distribuit inițial în Lisp pe platformele de mașini Lisp, dar în cele din urmă a fost portat pe PC-uri și stații de lucru Unix [5] .

Agenda de cercetare a Web-ului semantic a generat un interes reînnoit pentru clasificarea automată și limbajele cadru. Un exemplu este standardul Web Ontology Language (OWL) pentru descrierea informațiilor pe internet. OWL este un standard pentru furnizarea unui strat semantic pe Internet. Scopul este ca, în loc să organizeze webul folosind cuvinte cheie, așa cum fac astăzi majoritatea aplicațiilor (de exemplu, Google), webul poate fi organizat după concepte organizate într-o ontologie.

Numele limbajului OWL oferă un bun exemplu al valorii unei rețele semantice. Dacă ați căutat „OWL” folosind Internetul astăzi, majoritatea paginilor recuperate ar fi mai degrabă pe Bird Owl decât pe OWL standard. Cu un web semantic ar fi posibil să se specifice conceptul „Limbaj ontologic web” și utilizatorul nu ar trebui să-și facă griji cu privire la diferitele acronime sau sinonime posibile în căutare. De asemenea, utilizatorul nu ar trebui să-și facă griji cu privire la omonimele care aglomerează rezultatele căutării cu date irelevante, cum ar fi informații despre rapitori, cum ar fi în acest exemplu simplu.

În plus față de OWL, diverse standarde și tehnologii relevante pentru Web-ul semantic și influențate de limbajele Frame includ OIL și DAML. Instrumentul software Protege Open Source al Universității Stanford oferă o capacitate de editare ontologică bazată pe OWL și care are funcționalitatea completă a unui clasificator. Cu toate acestea, a încetat să accepte în mod explicit cadrele începând cu versiunea 3.5 (care este păstrată pentru cei care preferă orientarea cadrelor), versiunea actuală din 2017 este 5. Justificarea pentru comutarea între cadrele explicite este că OWL DL este mai expresiv și „standard industrial” [6] .

Compararea cadrelor și a obiectelor

Limbile cadrelor se suprapun semnificativ cu limbajele orientate obiect. Terminologiile și obiectivele celor două comunități au fost diferite, dar pe măsură ce s-au mutat din mediul academic și laboratoare în cele comerciale, dezvoltatorii au avut tendința de a nu-și face griji cu privire la problemele filosofice și s-au concentrat în principal pe abilități specifice, luând independent cele mai bune din ambele domenii. De unde a început ideea . Ambele paradigme au în comun dorința de a reduce distanța dintre conceptele din lumea reală și implementarea lor în software. Ca atare, ambele paradigme au ajuns la ideea reprezentării obiectelor software primare în taxonomii pornind de la tipuri foarte generale și trecând la tipuri mai specifice.

Tabelul următor ilustrează corelația dintre terminologia standard a comunităților orientate obiect și limbajul cadrelor:

Terminologia cadrului OO terminologie
Cadru Clasa obiect
Slot Proprietatea sau atributul obiectului
Declanșator Acces și metode de mutare
Metodă (de ex. Loom, KEE) Metodă

Principala diferență dintre cele două paradigme a fost în gradul în care încapsularea a fost considerată o cerință importantă. Pentru paradigma orientată obiect, încapsularea a fost una dintre cerințele critice, dacă nu chiar cea mai importantă. Dorința de a reduce interacțiunile potențiale între componentele software și, astfel, de a gestiona sisteme complexe mari a fost un factor cheie în tehnologia orientată obiect. Pentru câmpul limbajului cadrului, această cerință a fost mai puțin critică decât dorința de a furniza o gamă largă de instrumente posibile pentru reprezentarea regulilor, constrângerilor și logicii de programare. În lumea orientată obiect, totul este controlat de metode și de vizibilitatea metodelor. Deci, de exemplu, accesarea valorii de date a unei proprietăți a unui obiect trebuie făcută printr-o metodă de acces. Această metodă verifică lucruri precum validarea tipului de date și constrângerile asupra valorii care este recuperată sau setată pe proprietate. În limbile Frame, aceleași tipuri de constrângeri pot fi tratate în mai multe moduri. Declanșatoarele pot fi definite pentru a se activa înainte sau după ce o valoare este setată sau recuperată. Puteți defini reguli care să gestioneze aceleași tipuri de constrângeri. Sloturile în sine ar putea fi mărite cu informații suplimentare (numite „fațete” în unele limbi) din nou cu același tip de informații de constrângere.

Celălalt diferențiator major între limbajele cadru și limbile OO a fost moștenirea multiplă (care permite unui cadru sau unei clase să aibă două sau mai multe superclase). Moștenirea multiplă era o cerință pentru limbile cadrelor. Acest lucru provine din dorința de a modela lumea așa cum o fac oamenii, conceptualizările umane ale lumii cad rar în taxonomii care nu se suprapun rigid. Pentru multe limbi OO, în special în ultimii ani ai OO, moștenirea unică a fost puternic dorită sau necesară. Moștenirea multiplă a fost văzută ca un posibil pas în faza de analiză pentru modelarea unui domeniu, dar ceva care ar trebui eliminat în fazele de proiectare și implementare în numele menținerii încapsulării și modularității [7] .

Deși limbajele cadrelor timpurii, cum ar fi KRL, nu includeau transmiterea mesajelor, determinate de cererile dezvoltatorilor, majoritatea limbajelor cadrelor ulterioare (de exemplu, Loom, KEE) au inclus capacitatea de a defini mesajele cadru [5] .

Pe partea orientată obiect, au apărut, de asemenea, standarde care oferă în esență funcționalitatea echivalentă oferită de limbajele cadrelor, deși într-un format diferit și toate standardizate pe bibliotecile de obiecte. De exemplu, grupul de gestionare a obiectelor are specificații standardizate pentru caracteristici cum ar fi datele de testare obligatorii și constrângerile cu obiecte (analog cu utilizările obișnuite pentru fațete în cadre și constrângeri în limbaje de cadru precum Loom) și pentru integrarea motoarelor de reguli [8] [ 9] .

Istorie

Lucrările timpurii pe Frames au fost inspirate de cercetări psihologice care datează din anii 1930, care au indicat faptul că oamenii folosesc cunoștințe stereotipe stocate pentru a interpreta și acționa în situații cognitive noi [10] . Termenul Frame a fost folosit pentru prima dată de Marvin Minsky ca paradigmă pentru înțelegerea raționamentului vizual și a procesării limbajului natural [11] . În aceste și multe alte tipuri de probleme, spațiul pentru soluția potențială chiar și pentru cea mai mică problemă este enorm. De exemplu, extragerea fonemelor dintr-un flux audio brut sau detectarea marginilor unui obiect. Lucrurile care par banale pentru oameni sunt de fapt destul de complexe. De fapt, cât de dificile au fost cu adevărat probabil că nu a fost pe deplin înțeles până când cercetătorii AI au început să investigheze complexitățile obținerii computerelor pentru a le rezolva.

Noțiunea inițială de Cadre sau Script, așa cum au fost și ele numite, este că acestea stabilesc contextul pentru o problemă și, prin aceasta, reduc automat spațiul posibil de căutare. Ideea a fost adoptată și de Schank și Abelson, care au folosit-o pentru a ilustra modul în care un sistem de inteligență artificială ar putea procesa interacțiuni umane comune, cum ar fi comanda unei mese într-un restaurant [12] . Aceste interacțiuni au fost standardizate ca cadre cu sloturi care stocau informații relevante despre fiecare cadru. Sloturile sunt similare cu proprietățile obiectelor în modelarea orientată obiect și cu relațiile din modelele entitate-relație. Sloturile aveau adesea valori implicite, dar au necesitat și îmbunătățiri suplimentare ca parte a rulării fiecărei instanțe a scenariului. De exemplu, executarea unei sarcini, cum ar fi comanda într-un restaurant, a fost controlată începând cu o instanță de bază a cadrului și apoi creând instanțe și rafinând diferite valori, după cum este necesar. În esență, cadrul abstract a reprezentat o clasă de obiecte, iar cadrul este un exemplu de obiect. În această primă lucrare, accentul a fost pus în principal pe descrierile statice ale cadrului. Au fost dezvoltate diverse mecanisme pentru a defini intervalul unui slot, valorile implicite etc. chiar și în aceste sisteme timpurii existau capacități procedurale. O tehnică obișnuită a fost utilizarea „declanșatoarelor” (similar conceptului de declanșare a bazei de date) atașate sloturilor. Un declanșator este pur și simplu cod procedural atașat unui slot. Declanșatorul se poate declanșa înainte și / sau după accesarea sau modificarea valorii slotului.

Ca și în cazul claselor de obiecte, cadrele au fost organizate în ierarhii de subsumare. De exemplu, un cadru de bază ar putea fi comanda la un restaurant. Un exemplu ar fi Joe care merge la McDonald's. O specializare (în esență, o subclasă) a cadrului restaurantului ar fi un cadru de comandă într-un restaurant elegant. Cadrul elegant al restaurantului va moșteni toate valorile implicite din cadrul restaurantului, dar ar adăuga, de asemenea, mai multe sloturi sau ar schimba unul sau mai multe valori implicite (de exemplu, intervalul de preț estimat) pentru cadrul specializat [2] [13] .

Limbi

O mare parte din cercetările timpurii despre limbajul Frame (de exemplu, Schank și Abelson) au fost ghidate de constatările psihologiei experimentale și de încercările de a proiecta instrumente de reprezentare a cunoștințelor care să se potrivească cu modelele pe care oamenii se credeau că le folosesc pentru a funcționa în activitățile de zi cu zi. Acești cercetători erau mai puțin interesați de formalitatea matematică, deoarece credeau că astfel de formalisme nu erau neapărat modele bune pentru modul în care omul mediu conceptualizează lumea. Modul în care oamenii folosesc limbajul, de exemplu, este adesea departe de a fi logic.

În mod similar, în lingvistică, Charles J. Fillmore, la mijlocul anilor '70, a început să lucreze la teoria sa despre semantica cadrelor, care va duce mai târziu la resurse de calcul precum FrameNet [14] . Semantica cadrelor a fost motivată de reflecții asupra limbajului uman și a cunoașterii umane [15] .

Cercetători precum Ron Brachman au dorit să ofere cercetătorilor de inteligență artificială formalismul matematic și puterea de calcul asociată logicii. Scopul lor era să mapeze clasele, sloturile, constrângerile și regulile cadrelor într-un limbaj cadru pentru a stabili teoria și logica. Unul dintre avantajele acestei abordări este că validarea și chiar construirea de modele ar putea fi automatizate utilizând testere de teoreme și alte capacități de raționament automat. Dezavantajul a fost că ar putea fi mai dificil să se specifice inițial modelul într-un limbaj cu semantică formală.

Această evoluție ilustrează, de asemenea, o lacună clasică în cercetarea AI cunoscută sub numele de „sortate versus scruffies”. „Înțelegerile” au fost cercetătorii care au pus cea mai mare valoare pe precizia matematică și formalismul care ar putea fi atins prin logica de prim ordin și teoria mulțimilor. „Scruffies” erau mai interesați să modeleze cunoștințele în reprezentări care erau intuitive și semnificative psihologic pentru oameni.

Cea mai notabilă dintre abordările mai formale a fost limbajul KL-ONE [3] . Ulterior a apărut mai multe limbaje succesive ale cadrelor. Semantica formală a limbajelor, cum ar fi KL-ONE, a dat acestor limbaje cadru un nou tip de capacitate de raționament automat, cunoscut sub numele de clasificator. Clasificatorul este un motor care analizează diferitele declarații în limbajul cadrelor: definiția seturilor, subseturilor, relațiilor etc. Clasificatorul poate deduce automat diferite relații suplimentare și poate detecta când unele părți ale unui model sunt incompatibile între ele. În acest fel, multe dintre activitățile care ar fi efectuate în mod normal prin înlănțuirea înainte sau înapoi într-un motor de inferență pot fi efectuate în schimb de către clasificator [4] .

Această tehnologie este deosebit de valoroasă atunci când vine vorba de internet. Este un rezultat interesant că formalismul unor limbi precum KL-ONE poate fi foarte util pentru a face față datelor extrem de informale și nestructurate găsite pe internet. Pe Internet, pur și simplu nu este posibil să se solicite standardizarea tuturor sistemelor pe un model de date. Este inevitabil ca terminologia să fie utilizată în mai multe forme inconsistente. Capacitatea de clasificare automată a motorului de clasificare oferă dezvoltatorilor AI o cutie de instrumente puternică pentru a contribui la aducerea ordinii și consistenței la o colectare de date foarte inconsistentă (de exemplu, Internetul). Viziunea pentru un Internet îmbunătățit, în care paginile sunt sortate nu doar după cuvinte cheie text, ci după clasificarea conceptelor este cunoscută sub numele de Semantic Web. Tehnologia de clasificare dezvoltată inițial pentru limbajele cadru este un factor cheie al Semantic Web [16] [17] . Decalajul „neat vs. scruffies” a apărut, de asemenea, în cercetările pe web-ul semantic, culminând cu crearea comunității Linking Open Data: accentul lor a fost pe expunerea datelor pe web, mai degrabă decât pe modelare.

Bibliografie

  • ( EN ) Russell, Stuart J. și Norvig, Peter, cap. 1 , în Inteligența artificială: o abordare modernă , ediția a II-a, Upper Saddle River, New Jersey, Prentice Hall, 2010, ISBN 0-13-604259-7 .

Notă

  1. ^ FOAF , la http://semanticweb.org . Adus la 7 iunie 2014 (arhivat din original la 10 februarie 2013) .
  2. ^ a b DG Bobrow și Terry Winograd, An Overview of KRL: A Knowledge Representation Language , în Cognitive Science , vol. 1, 1977, pp. 3–46, DOI : 10.1207 / s15516709cog0101_2 .
  3. ^ a b Ron Brachman, O paradigmă structurală pentru reprezentarea cunoașterii , în Raportul tehnic Bolt, Beranek și Neumann , n. 3605, 1978.
  4. ^ a b Robert MacGregor, Utilizarea unui clasificator de descriere pentru a îmbunătăți reprezentarea cunoștințelor , în IEEE Expert , vol. 6, nr. 3, iunie 1991, pp. 41-46, DOI : 10.1109 / 64.87683 .
  5. ^ a b William Mettrey, An Assessment of Tools for Building Large Knowledge-Based Systems , în Revista AI , vol. 8, nr. 4, 1987. Adus pe 9 decembrie 2013 (arhivat din original la 10 noiembrie 2013) .
  6. ^ Mathew Horridge, Tutorial Protégé OWL Un ghid pas cu pas pentru modelarea în OWL folosind instrumentele populare Protégé OWL. , în Manchester University , Manchester University. Adus de 09 decembrie 2013 (arhivate din original la 13 decembrie 2013).
  7. ^ The Unified Modeling Language , în essentialstrategies.com , Essential Strategies Inc., 1999. Accesat la 10 decembrie 2013 .
    „Din experiența autorului dvs., aproape toate exemplele care par să necesite moștenire multiplă sau ierarhii de tipuri multiple pot fi rezolvate atacând modelul dintr-o direcție diferită.” .
  8. ^ Robert Macgregor, Retrospective on Loom , în isi.edu , Information Sciences Institute, 13 august 1999. Accesat la 10 decembrie 2013 (arhivat din original la 25 octombrie 2013) .
  9. ^ Specificații formale OMG , la omg.org , Object Management Group. Adus la 10 decembrie 2013 .
  10. ^ FC Bartlett , Remembering: A Study in Experimental and Social Psychology , Cambridge, Anglia, Cambridge University Press, 1932, DOI : 10.1086 / 399084 .
  11. ^ Marvin Minsky, Un cadru pentru reprezentarea cunoașterii , în Pat Winston (ed.), The Psychology of Computer Vision , New York, McGraw Hill, 1975, pp. 211-277.
  12. ^ Roger Schank și RP Abelson, Scripturi, planuri, obiective și înțelegere , Hillsdale, New Jersey, Lawrence Erlbaum, 1977.
  13. ^ Edward Feigenbaum și Avron Barr, The Handbook of Artificial Intelligence, Volumul III , Addison-Wesley, 1 septembrie 1986, pp. 216-222, ISBN 978-0-201-11811-7 .
  14. ^ George Lakoff, Charles Fillmore, Discoverer of Frame Semantics, dies in SF at 84: He Figured Out How Framing Works , în The Huffington Post , 18 februarie 2014. Adus pe 7 martie 2014 .
  15. ^ Daniel Crevier, AI: The Tumultuous Search for Artificial Intelligence , New York, Basic Books, 1993, p. 168, ISBN 978-0-465-02997-6 .
  16. ^ Tim Berners-Lee, James Hendler și Ora Lassila, The Web semantic O nouă formă de conținut web care este semnificativă pentru computere va declanșa o revoluție a noilor posibilități , în Scientific American , vol. 284, nr. 5, 17 mai 2001, pp. 34–43, DOI : 10.1038 / scientificamerican0501-34 (arhivat din original la 24 aprilie 2013) .
  17. ^ Mathew Horridge, Tutorial Protégé OWL Un ghid pas cu pas pentru modelarea în OWL folosind instrumentele populare Protégé OWL. , în Manchester University , Manchester University. Adus de 09 decembrie 2013 (arhivate din original la 13 decembrie 2013).

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT