]> matita.cs.unibo.it Git - helm.git/commitdiff
Modified Files:
authorIrene Schena <irene.schena@unibo.it>
Wed, 24 Apr 2002 16:50:29 +0000 (16:50 +0000)
committerIrene Schena <irene.schena@unibo.it>
Wed, 24 Apr 2002 16:50:29 +0000 (16:50 +0000)
1) grammar.txt: changes
Added Files:
1) query.xml: query example
2) xmathql.dtd: dtd for mathql

helm/mathql/grammar.txt
helm/mathql/query.xml [new file with mode: 0644]
helm/mathql/xmathql.dtd [new file with mode: 0644]

index 399a529f123320d802822f7873a9f42aca3fdb58..877bd075fddc85f7955296612a7f388eacb2e53b 100644 (file)
@@ -7,7 +7,8 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
        |  <list> UNION <list>                  (* unione *)
        |  <list> INTERSECT <list>              (* intersezione *)
        |  <list> DIFF <list>                   (* differenza *)
-       |  <list> SORTEDBY <order>
+       |  <list> SORTEDBY <order> <function>   (* unione lista ordinata secondo
+                                                  ordine e valore funzione *)
        |  SELECT <rvar> IN <list> WHERE <bool> (* selezione *)
        |  EXISTS <rvar> IN <list> WHERE <bool> (* esistenziale *)
        |  USE <list> POSITION <svar>           (* unione lista backward *)
@@ -43,6 +44,9 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
         |  <function> <rvar>                  (* applicazione di funzione *)
         
 <function> := NAME                            (* rvar -> nome_oggetto *)
+          |  <property>
+
+<property> := THEORY                           (* URI -> valore_Proprieta' *)
            |  TITLE                           (* URI -> valore_Prop_DC *)
            |  CONTRIBUTOR
            |  CREATOR
@@ -62,20 +66,15 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
           |  CONTACT
           |  FIRSTVERSION
           |  MODIFIED
-           |  <refineop> <function>
+           |  <refineprop> <property>
 
-<refineop> := SUB                             (* proprieta' e sotto-proprieta'
+<refineprop> := SUB                           (* proprieta' e sotto-proprieta'
                                                   di *) 
-           |  SUPER                           (* proprieta' e super-proprieta'
+             |  SUPER                         (* proprieta' e super-proprieta'
                                                   di *)
 
-<order>    := THEORY                           (* ordinamento alfabetico in 
-                                                  base a teorie e default per
-                                                 gli oggetti *)
+<order>    := DESC                             (* ordinamento decrescente *)
           |  ASC                              (* ordinamento crescente *) 
-          |  DESC                             (* ordinamento decrescente *) 
-          |  KEY                              (* ordinamento in base a parole
-                                                  chiave o soggetto *)
 
 <rvar> := <not-reserved-identifier>            (* variabile per risorse *)
 <svar> := $ <not-reserved-identifier>          (* variabile per stringhe *)
@@ -99,6 +98,3 @@ MATHEMATICAL QUERY LANGUAGE (MathQL)
   teorema ci sono? 
 - L'ordinamento di default e' quello alfabetico crescente in base al nome 
   delle rvar
-
-
diff --git a/helm/mathql/query.xml b/helm/mathql/query.xml
new file mode 100644 (file)
index 0000000..68fb999
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE MathQL SYSTEM "xmathql.dtd">
+
+<!-- To validate: xmllint -valid -loaddtd -noout proquery.xml -->
+
+<MathQL>
+ <Select>
+  <In>
+   <Use>
+    <Pattern arg="cic:/Coq/Init/Logic/Equality/eq.ind"/>
+    <Position binder="$1"/>
+   </Use>
+  </In>
+  <Where rvar="result">
+   <AND>
+    <IS>
+     <BINDER name="$1"/>
+     <POSITION name="MainHypothesis"/>
+    </IS>
+    <IS>
+     <PROPERTY name="TITLE"><RVAR name="result"/></PROPERTY>
+     <CONST>Uguaglianza</CONST>
+    </IS>
+   </AND>
+  </Where>
+ </Select>
+</MathQL>
+
diff --git a/helm/mathql/xmathql.dtd b/helm/mathql/xmathql.dtd
new file mode 100644 (file)
index 0000000..57b663f
--- /dev/null
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!-- Copyright (C) 2000, HELM Team                                     -->
+<!--                                                                   -->
+<!-- This file is part of HELM, an Hypertextual, Electronic            -->
+<!-- Library of Mathematics, developed at the Computer Science         -->
+<!-- Department, University of Bologna, Italy.                         -->
+<!--                                                                   -->
+<!-- HELM is free software; you can redistribute it and/or             -->
+<!-- modify it under the terms of the GNU General Public License       -->
+<!-- as published by the Free Software Foundation; either version 2    -->
+<!-- of the License, or (at your option) any later version.            -->
+<!--                                                                   -->
+<!-- HELM is distributed in the hope that it will be useful,           -->
+<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of    -->
+<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     -->
+<!-- GNU General Public License for more details.                      -->
+<!--                                                                   -->
+<!-- You should have received a copy of the GNU General Public License -->
+<!-- along with HELM; if not, write to the Free Software               -->
+<!-- Foundation, Inc., 59 Temple Place - Suite 330, Boston,            -->
+<!-- MA  02111-1307, USA.                                              -->
+<!--                                                                   -->
+<!-- For details, see the HELM World-Wide-Web page,                    -->
+<!-- http://cs.unibo.it/helm/.                                         -->
+
+<!--*****************************************************************-->
+<!-- DTD FOR the MATHEMATICAL QUERY MARKUP LANGUAGE (MathQML)        -->
+<!-- First draft: April 2002, Irene Schena                           -->
+<!--*****************************************************************-->
+
+<!--*****************************************************************-->
+<!-- This syntax is not convenient for humans to read and write, but -->
+<!-- it is for programs.                                             -->
+<!-- XMathQL is useful for:                                          -->
+<!-- 1) generating queries in a XML-orienting programming environment-->
+<!-- 2) embedding queries in XML documents                           -->
+<!-- 3) reusing queries saved in a standard format                   -->
+<!-- The syntax reflects the structure of the grammar productions of -->
+<!-- MathQL.                                                         -->
+<!-- The %queryexpr parameter entity is used to allow all query      -->
+<!-- expression types to occur                                       -->
+<!-- Operators are unambiguous (binary or unary), so there isn't any -->
+<!-- grouping operator.                                              -->
+<!-- CONST is the constant string.                                   -->
+<!--*****************************************************************-->
+
+<!ENTITY % position '(Conclusion|Hypothesis|Body|MainConclusion|
+                        MainHypothesis)'>
+
+<!ENTITY % order '(ascendant|descendant)'>
+
+<!ENTITY % bool '(True|False)'>
+
+<!-- MathQL query expression declaration -->
+
+<!ENTITY % queryexpr '(Union|Intersect|Diff|SortBy|Select|Exists|Use|UsedBy|
+                   ConstructorsOf|Pattern|InTheory|TheoryRefTo|TypeOf|
+                   SuperTypeOf|SubTypeOf|Group)'>
+
+<!-- MathQL boolean expression declaration -->
+
+<!ENTITY % boolexpr '(AND|OR|NOT|BOOL|IS|GROUP)'>
+
+<!-- MathQL string expression declaration -->
+
+<!ENTITY % functexpr '(NAME|PROPERTY|SUPERPROPERTY|SUBPROPERTY)'>
+
+<!ENTITY % stringexpr '(CONST|POSITION|RVAR|BINDER|%functexpr;)'>
+
+
+<!-- MathQL top-element -->
+
+<!ELEMENT MathQL %queryexpr;>
+
+<!-- MathQL query expressions -->
+
+<!ELEMENT Union (%queryexpr;, %queryexpr;)>
+
+<!ELEMENT Intersect (%queryexpr;, %queryexpr;)>
+
+<!ELEMENT Diff (%queryexpr;, %queryexpr;)>
+
+<!ELEMENT SortBy (%queryexpr;, SortField)>
+
+<!ELEMENT Select (In, Where)>
+
+<!ELEMENT Exists (In, Where)>
+
+<!ELEMENT Use (%queryexpr;, Position)>
+
+<!ELEMENT Position EMPTY>
+<!ATTLIST Position
+          binder CDATA #REQUIRED>
+
+<!ELEMENT UsedBy (%queryexpr;, Position)>
+
+<!ELEMENT ConstructorsOf %queryexpr;>
+
+<!ELEMENT Pattern EMPTY>
+<!ATTLIST Pattern
+          arg CDATA #REQUIRED>
+
+<!ELEMENT InTheory (%queryexpr;, ItemType)>
+
+<!ELEMENT ItemType EMPTY>
+<!ATTLIST ItemType
+          binder CDATA #REQUIRED>
+
+<!ELEMENT TheoryRefTo %queryexpr;>
+
+<!ELEMENT TypeOf %queryexpr;>
+<!ATTLIST TypeOf
+          binder CDATA #REQUIRED>
+
+<!ELEMENT SuperTypeOf %queryexpr;>
+<!ATTLIST SuperTypeOf
+          binder CDATA #REQUIRED>
+
+<!ELEMENT SubTypeOf %queryexpr;>
+<!ATTLIST SubTypeOf
+          binder CDATA #REQUIRED>
+
+<!-- MathQL query sub-expressions -->
+
+<!ELEMENT SortField %functexpr;>
+<!ATTLIST SortField 
+          order %order; #IMPLIED>
+
+<!ELEMENT In %queryexpr;>
+
+<!ELEMENT Where %boolexpr;>
+<!ATTLIST Where
+          rvar CDATA #REQUIRED>
+
+<!-- MathQL boolean expressions -->
+
+<!ELEMENT AND (%boolexpr;, %boolexpr;)>
+
+<!ELEMENT OR (%boolexpr;, %boolexpr;)>
+
+<!ELEMENT NOT %boolexpr;>
+
+<!ELEMENT IS (%stringexpr;, %stringexpr;)>
+
+<!ELEMENT BOOL EMPTY>
+<!ATTLIST BOOL
+          value %bool; #REQUIRED>
+
+<!-- MathQL string expressions -->
+<!ELEMENT CONST (#PCDATA)>
+
+<!ELEMENT RVAR EMPTY>
+<!ATTLIST RVAR
+          name CDATA #REQUIRED>
+
+<!ELEMENT BINDER EMPTY>
+<!ATTLIST BINDER
+          name CDATA #REQUIRED>
+
+<!ELEMENT POSITION EMPTY>
+<!ATTLIST POSITION
+          name %position; #REQUIRED>
+
+<!ELEMENT NAME (RVAR)>
+
+<!ELEMENT PROPERTY (RVAR|CONST)>
+<!ATTLIST PROPERTY
+          name CDATA #REQUIRED>
+
+<!ELEMENT SUPERPROPERTY  (RVAR|CONST)>
+<!ATTLIST SUPERPROPERTY
+          name CDATA #REQUIRED>
+
+<!ELEMENT SUBPROPERTY (RVAR|CONST)>
+<!ATTLIST SUBPROPERTY
+          name CDATA #REQUIRED>
\ No newline at end of file