Motor de reguli bazat pe date.
Naga permite utilizatorilor sa incarce date si sa defineasca reguli pentru date noi implicate. Odata ce regulile au fost executate, baza de date va fi populata cu noi inferente care pot fi interogate.
Naga poate utiliza baza de date Asami sau poate infasura o baza de date de grafic extern. Un utilitar de linie de comanda pentru a demonstra Naga va incarca reguli, in memorie, le va rula si va imprima toate rezultatele deduse.
Utilizare
Naga este o biblioteca pentru executarea regulilor pe o baza de date cu grafice.
Exista, de asemenea, un proiect inclus numit Naga-CLI (in directorul cli). Acest lucru a fost scris ca un exemplu de utilizare a Datomic API, dar poate fi rulat si pe un script Datalog ca utilitar.
Scriptul poate fi furnizat prin stdin sau intr-un argument de nume de fisier.
Cel mai simplu mod de a rula acest instrument este cu Leiningen.
Acesta ruleaza programul gasit in fisierul example_data / family.lg. Acesta incarca datele specificate in fisier, executa regulile si, in cele din urma, imprima baza de date a rezultatelor finale, fara datele de intrare.
Optiuni
- –init Date de initializare pentru stocarea configurata.
- –json Calea de intrare / URL pentru ca JSON sa fie incarcat si procesat.
- –out Fisier de iesire la procesarea datelor JSON (ignorat cand JSON nu este utilizat).
- –uri URI care descrie o baza de date la care sa va conectati. (implicit: mem. Datomic acceptat).
Programe
Limbajul implementat se numeste „Pabu” si seamana puternic cu Prolog. Este pur si simplu o serie de afirmatii, care sunt de doua tipuri: afirmatii si reguli.
Afirmatii
Pentru a declara fapte, specificati un predicat unar sau binar.
Prima declaratie declara ca fred este de tip om. Al doilea declara ca fred are un prieten care este Barney.
Nu trebuie declarat nimic despre om sau prieten. Sistemului nu ii pasa de fapt ce inseamna, ci doar ca pot fi utilizate in acest fel. Utilizarea acestor predicate este toata declaratia de care au nevoie.
Reguli
Regulile sunt declarate in 2 parti.
cap : – corp .
hentai en castellano videos caseros españa
sexogratis incesto retro
fiestas xxx falsos casting porno
porno amas de casa xxx prostitutas
mujeres follando gratis cine para adultos gratis
concursos nudistas porno peludas españolas
porno loco analxxx
pajas de madres asiatica forzada
videos pornos muy guarros tata_latina
porno india cerdas com gratis
maduras tocandose me follo a
tuporn laura marano nude
torbe videos completos peliculas x en castellano
maduras sex pillada follando
joven folla por dinero se folla a su cuñada
mi madre me folla chupame las tetas
porno friki gay se la chupa a hetero
follando con abuelas fontanero cachondo
pillada follando porno italiano incesto
incestos lesbicos trios x
Corpul regulii, defineste datele care determina ca regula sa fie executata. Aceasta este o serie de predicate separate prin virgula, fiecare continand de obicei una sau mai multe variabile. Predicatul in sine poate fi, de asemenea, variabil (acest lucru este foarte neobisnuit in sistemele logice).
Seful regulii utilizeaza unele dintre variabilele din organism pentru a declara noi informatii ca regula se va crea. Este alcatuit dintr-un singur predicat.
Variabilele sunt cuvinte care incep cu o litera mare (da, Prolog chiar arata asa).
Iata o regula care va deduce o relatie de unchi din datele existente:
In afirmatia de mai sus, Nibling , Parent si Uncle sunt toate variabile. Odata ce variabilele s-au gasit pentru a se potrivi cu predicatele dupa simbolul : – , atunci ele pot fi inlocuite in predicatul unchiului din capul regulii.
Alta sintaxa
Atat afirmatiile, cat si regulile se incheie cu un punct.
Pabu (si Prolog) foloseste comentarii in stilul „C”:
Orice element poate primi un spatiu de nume folosind un separator de doua puncte. Intr-un identificator poate aparea doar 1 punct.
Pentru a vedea acest lucru in uz, cautati in pabu / family-2nd-ord.lg si incercati sa il rulati:
API-uri
Naga defineste un API de acces la date pentru a vorbi cu stocarea. Acesta este un protocol Clojure sau o interfata Java numita Stocare, gasita in naga.store. Ar trebui sa fie posibil sa infasurati cele mai multe API-uri de baze de date grafice in API-ul de stocare.
Pentru moment, singurele implementari configurate sunt Asami si Datomic. Recent, accentul a fost pus pe Asami.
Asami
Urmatoarele pot fi utilizate pentru a accesa o baza de date in memorie pe Asami:
Aceasta imprima:
Acest lucru incepe si se termina cu acces standard Asami. Naga este folosit pentru a analiza programul de reguli si a executa regulile.
In baza de date de memorie
Naga este conceput pentru a opera impotriva oricarei baze de date grafice. Interfata pentru aceasta este protocolul de stocare descris mai sus si este definita in proiectul naga-store. Implementarile acestui protocol exista pentru Datomic si o baza de date grafica locala in memorie numita Asami. Asami este folosit in mod implicit. Asami are un planificator de interogari relativ capabil si operatiuni interne pentru imbinari interioare si proiectie. Mai multe operatiuni sunt in lucru.
Interogarile pot fi executate direct in baza de date, dar pentru moment necesita acces API.
De asemenea, avem cateva implementari partiale pentru stocarea pe disc, pe care speram sa le folosim. Acestea se bazeaza pe aceeasi arhitectura ca si indexurile din baza de date Mulgara.
Licenta
Drepturi de autor © 2016-2021 Cisco Systems
Copyright © 2011-2016 Paula Gearon
Distribuit sub licenta publica Eclipse fie versiunea 1.0, fie (la alegerea dvs.) orice versiune ulterioara.








