X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=helm%2Fmathql%2Fgrammar.txt;fp=helm%2Fmathql%2Fgrammar.txt;h=0000000000000000000000000000000000000000;hp=5622761a3381db959570f04bbd778f456bc1d31f;hb=869549224eef6278a48c16ae27dd786376082b38;hpb=89262281b6e83bd2321150f81f1a0583645eb0c8 diff --git a/helm/mathql/grammar.txt b/helm/mathql/grammar.txt deleted file mode 100644 index 5622761a3..000000000 --- a/helm/mathql/grammar.txt +++ /dev/null @@ -1,148 +0,0 @@ -GRAMMATICA PER QUERY SU DOCUMENTI MATEMATICI -MATHEMATICAL QUERY LANGUAGE (MathQL) - - := (* clausola iniziale *) - - := ( ) (* parentesizzazione *) - | (* var per insieme singoletto - di una risorsa *) - | (* var per insieme di risorse - (insieme di valori) *) - | REF (* oggetto/i referenziato/i da - URI esplicita/e *) - | PATTERN (* oggetto/i referenziato/i da - URI ottenute da espansione - del pattern *) - | SELECT IN WHERE (* selezione *) - | LET BE IN (* assegnazione a set-var in - contesto *) - | LET BE IN (* assegnamento a value-var - in contesto*) - | RELATION ATTR - (* unione insieme risorse in - relazione specificata con le - risorse in set, ognuna con - attributi (ATTR) *) - | UNION (* unione *) - | INTERSECT (* intersezione *) - | DIFF (* differenza *) - - := "" (* relazione (proprieta') *) - | SUB (* proprieta' e - sotto-proprieta' *) - | SUPER (* proprieta' e - super-proprieta' *) - - := - (* relazione (proprieta') *) - | "/" - (* insieme di stringhe: - proprieta' strutturata *) - - := - | , - - - := ( ) (* parentesizzazione *) - | TRUE (* vero *) - | FALSE (* falso *) - | NOT (* negazione *) - | AND (* congiunzione *) - | OR (* disgiunzione *) - | EQ (* uguaglianza tra insiemi - stringhe (case sensitive) *) - | SUB (* operazione di sottoinsieme - tra insiemi stringhe *) - | MEET (* operazione di meet tra - insiemi stringhe *) - | EX (* existential on attributes - of references *) - := ( ) (* parentesizzazione *) - | {} (* insieme vuoto*) - | (* stringa singoletto *) - | {}(* insieme stringhe *) - | REFOF (* insieme riferimenti *) - | . (* variabile per insieme - stringhe, relativa a - riferimento *) - | - (* applicazione di funzione - specificata a riferimento - o insiemi di rif. o var*) - | (* vvar introduced by LET *) - - := - | , - (* lista di stringhe *) - - := FUN (* funzione generale *) - | - - := ATTRIBUTE (* funzione proprieta': restituisce - suoi valori (anche strutturati) - (e delle sotto-proprieta' o - super-proprieta' *) - - - := @ (* variabile per riferimento *) - := $ (* variabile per insiemi - stringhe *) - := % (* variabile per insiemi - riferimenti *) - - -- Idea di base: grammatica del linguaggio semplice e permissiva (duttile) -- MEET e' definito come "esiste almeno un elemento che appartiene - all'interserzione tra due insiemi" -- le stringhe sono "case sensitive" -- la funzione non definita sull'argomento restituisce la stringa nulla -- le si presuppongono essere istanziate come URI references costituite - da un URI e da un fragment identifier opzionale complete; i riferimenti - identificano risorse -- Precedenza operatori: - NOT (+) DIFF - AND INTERSECT - OR (-) UNION -- L'ordinamento di default e' quello alfabetico crescente in base al nome - delle rvar -- REF aumenta performance perche' NON accede al data base (costoso). -- l'argomento di PATTERN ha sintassi di una espressione regolare - POSIX 1003.2-1992 -- Possibile FUN (): - NAME (* URIREF -> nome_oggetto *) -- MEET aumenta performance nel caso si verifichi (a in S) oppure - (b in S) = ({a,b} meet S) perche' valuta S una volta sola - Il MEET codifica inoltre l'esistenziale su risorse (URI) in un certo - insieme che soddisfa certe condizioni -- record . serve per disambiguare nomi uguali di variabili -- Operatori (come EQ) hanno nomi abbreviati rispetto ai costrutti del - linguaggio -- EX verfica che la sua condizione sia vera per almeno un insieme di attributi - associato all'URI in rvar -- Possibili RELATION sono: - USE con attributo POSITION (riferimenti backward) e valori MAINHYPOTHESIS, - HYPOTHESIS, MAINCONCLUSION, CONCLUSION, BODY - USEBY con attributo POSITION (riferimenti forward) e valori MAINHYPOTHESIS, - HYPOTHESIS, MAINCONCLUSION, CONCLUSION, BODY - CONSTRUCTORS - INTHEORY con attributo ITEMTYPE (riferimenti oggetti contenuti in teorie) - THEORYREFTO con attributo ITEMTYPE (riferimenti teorie referenti a oggetti) -- invece di come argomento di poiche' la REF non - e' piu' restrittiva su argomento/i e quindi e' inutile imporne l'uso quando - si passano i riferimenti alle funzioni. Con l'utente e' libero - di passare direttamente le stringhe dei riferimenti. -- Il costrutto di ordinamento: - SORTEDBY (* unione insieme ordinato secondo - valore funzione e ordine *) - := DESC (* ordinamento decrescente *) - | ASC (* ordinamento crescente *) - perde di senso nel caso di metadati, poiche' per definizione le proprieta' - in RDF possono essere ripetute quindi restituiscono (come anche le funzioni - in generale) valori multipli per ogni riferimento (ambiguita' nell'ordine) -- Possibili proprieta' (): - le DC: TITLE, CONTRIBUTOR, CREATOR, PUBLISHER, SUBJECT, DESCRIPTION, DATE, - TYPE, FORMAT, IDENTIFIER, LANGUAGE, RELATION, SOURCE, COVERAGE, RIGHTS, - RIGHTS; and INSTITUTION, CONTACT, FIRSTVERSION, MODIFIED, THEORY -- Il concetto di Classe, sottoclasse, superclasse, puo' essere visto come una - particolare proprieta' (type o tipo) di una risorsa, e quindi codificabile - da RELATION \ No newline at end of file