]> matita.cs.unibo.it Git - helm.git/blobdiff - mathql/xmathql.dtd
moved mathql/ under software/
[helm.git] / mathql / xmathql.dtd
diff --git a/mathql/xmathql.dtd b/mathql/xmathql.dtd
new file mode 100644 (file)
index 0000000..96b52a2
--- /dev/null
@@ -0,0 +1,165 @@
+<?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 (XMathQL)        -->
+<!-- First draft: April 2002, Irene Schena                           -->
+<!-- Second draft: Agust 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.                                                         -->
+<!-- Operators are unambiguous (binary or unary), so there isn't any -->
+<!-- grouping operator.                                              -->
+<!-- CONST is the quoted constant string; rvar is for single         -->
+<!-- reference and svar for sets of references, i.e. query results.  -->
+<!-- The attributes binder, rvar, svar declare variables which are   -->
+<!-- referred to and used by means of respectively BINDER, Rvar, Svar-->
+<!-- PROPERTY works on a specified RDF property returning its value. -->
+<!--*****************************************************************-->
+
+<!ENTITY % bool '(True|False)'>
+
+<!-- MathQL query expression declaration -->
+
+<!ENTITY % setexpr '(Rvar|Svar|Ref|Pattern|Select|LetSIn|LetVIn|Relation|
+                     Union|Intersect|Diff)'>
+
+<!-- MathQL boolean expression declaration -->
+
+<!ENTITY % boolexpr '(BOOL|NOT|AND|OR|EQ|SUB|MEET|EX)'>
+
+<!-- MathQL string-set expression declaration -->
+
+<!ENTITY % functexpr '(FUN|PROPERTY)'>
+
+<!ENTITY % stringsetexpr '(CONST|CONSTLIST|REFOF|BINDER|VVAR|%functexpr;)'>
+
+<!-- MathQL query top-element -->
+
+<!ELEMENT MQLquery %setexpr;>
+
+<!-- MathQL set expressions -->
+
+<!ELEMENT Rvar EMPTY>
+<!ATTLIST Rvar
+          name CDATA #REQUIRED>
+
+<!ELEMENT Svar EMPTY>
+<!ATTLIST Svar
+          name CDATA #REQUIRED>
+
+<!ELEMENT Ref %stringsetexpr;>
+
+<!ELEMENT Pattern %stringsetexpr;>
+
+<!ELEMENT Select (In, Where)>
+
+<!ELEMENT LetSIn (%setexpr;, Starget)>
+
+<!ELEMENT LetVIn (%stringsetexpr;, Vtarget)>
+
+<!ELEMENT Relation (PName?,%setexpr;, Attr+)>
+<!ATTLIST Relation
+          name CDATA #REQUIRED
+          refine (sub|super) #IMPLIED>
+
+<!ELEMENT Union (%setexpr;, %setexpr;)>
+
+<!ELEMENT Intersect (%setexpr;, %setexpr;)>
+
+<!ELEMENT Diff (%setexpr;, %setexpr;)>
+
+<!-- MathQL set sub-expressions -->
+
+<!ELEMENT In %setexpr;>
+
+<!ELEMENT Where %boolexpr;>
+<!ATTLIST Where
+          rvar CDATA #REQUIRED>
+
+<!ELEMENT Starget %setexpr;>
+<!ATTLIST Starget
+          svar CDATA #REQUIRED>
+
+<!ELEMENT Vtarget %setexpr;>
+<!ATTLIST Vtarget
+          vvar CDATA #REQUIRED>
+
+<!ELEMENT Attr EMPTY>
+<!ATTLIST Attr 
+          binder CDATA #REQUIRED>
+
+<!ELEMENT PName (CONST+)>
+
+<!-- MathQL boolean expressions -->
+
+<!ELEMENT BOOL EMPTY>
+<!ATTLIST BOOL
+          value %bool; #REQUIRED>
+
+<!ELEMENT NOT %boolexpr;>
+
+<!ELEMENT AND (%boolexpr;, %boolexpr;)>
+
+<!ELEMENT OR (%boolexpr;, %boolexpr;)>
+
+<!ELEMENT EQ (%stringsetexpr;, %stringsetexpr;)>
+
+<!ELEMENT SUB (%stringsetexpr;, %stringsetexpr;)>
+
+<!ELEMENT MEET (%stringsetexpr;, %stringsetexpr;)>
+
+<!ELEMENT EX %boolexpr;>
+
+<!-- MathQL string-set expressions -->
+
+<!ELEMENT CONST (#PCDATA)>
+
+<!ELEMENT CONSTLIST (CONST*)>
+
+<!ELEMENT REFOF %setexpr;>
+
+<!ELEMENT VVAR %stringsetexpr;>
+
+<!ELEMENT BINDER (Rvar)>
+<!ATTLIST BINDER
+          name CDATA #REQUIRED>
+
+<!ELEMENT FUN %stringsetexpr;>
+<!ATTLIST FUN
+          name CDATA #REQUIRED>
+
+<!ELEMENT PROPERTY (Refine?,%stringsetexpr;)>
+<!ATTLIST PROPERTY
+          name CDATA #REQUIRED>