<!-- Rdf Schema definition for theory files:
xmlns:hth="http://www.cs.unibo.it/~schena/schema-hth.rdf#" -->
+<!DOCTYPE rdf:RDF [
+ <!ENTITY rdfns 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+ <!ENTITY rdfsns 'http://www.w3.org/2000/01/rdf-schema#'>
+ <!ENTITY dcns 'http://www.cs.unibo.it/~schena/dces#'>
+ <!ENTITY dcqns 'http://www.cs.unibo.it/~schena/dcq#'>
+ <!ENTITY xschemans 'http://www.w3.org/1999/XMLSchema-datatypes#'>
+ <!ENTITY hthns 'http://www.cs.unibo.it/~schena/schema-hth.rdf#'>
+ ]>
+
<rdf:RDF xml:lang="en"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:dc="http://www.cs.unibo.it/~schena/dublin_core.rdf#">
-
-<!-- RICORDA: aggiungi commento anche a proprieta' e istanze -->
-<!-- RICORDA: studiare tipi di dato (invece di Literal) -->
-<!-- RICORDA: specificare i contenuti dei dc elements -->
-<!-- RICORDA: verifica formato xml.helm.cic -->
+ xmlns:rdf="&rdfns;"
+ xmlns:rdfs="&rdfsns;"
+ xmlns:dc="&dcns;"
+ xmlns:dcq="&dcqns;"
+ xmlns:xs="&xschemans;">
+
+<!-- RICORDA: specificare i contenuti dei dc elements: problemi con RSSDB -->
<!-- RICORDA: aggiungi euler properties -->
+<!-- Description of Schema -->
+
+<rdf:Description rdf:about="&hthns;">
+ <rdf:value>The HELM Element Set v0.1</rdf:value>
+ <dc:title>The HELM Theory Element Set v0.1</dc:title>
+ <dc:publisher>The HELM Project</dc:publisher>
+ <dc:description>The HELM metadata vocabulary is a simple vocabulary
+ intended to facilitate discovery of mathematical resources.
+ </dc:description>
+ <dc:language>English</dc:language>
+ <dc:relation rdf:resource="http://ww.cs.unibo.it/helm/"/>
+ <dc:date>2001-12-12</dc:date>
+</rdf:Description>
+
+
<!-- Classes -->
<rdfs:Class rdf:ID="MathResource">
- <rdfs:comment>Mathematical resource</rdfs:comment>
- <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
+ <rdfs:comment>Mathematical resources</rdfs:comment>
+ <rdfs:subClassOf rdf:resource="&rdfsns;Resource"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdfs:Class>
<rdfs:Class rdf:ID="Theory">
- <rdfs:comment>Mathematical resource represented by a theory</rdfs:comment>
+ <rdfs:comment>Mathematical resources represented by theories</rdfs:comment>
<rdfs:subClassOf rdf:resource="#MathResource"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdfs:Class>
<rdfs:Class rdf:ID="TheoryItem">
- <rdfs:comment>Theory item represented by: axiom, fact, definition, theorem, lemma, corollary, variable, specified by a XPath expression </rdfs:comment>
+ <rdfs:comment>Theory items represented by: axiom, fact, definition, theorem, lemma, corollary, variable, specified by a XPath expression</rdfs:comment>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="HelmFormat">
+ <rdfs:comment>HELM File formats of a mathematical resource (possible values of the Dublin Core property Format). Possible values of the rdf:about
+attribute can be XML.cic, XML.hol, XML.mizar. Each Helm format describes
+a logical framework. The class dcq:IMT contains values as text/xml, text/xhtml,
+text/mml, text/ps, text/tex, text/pdf.</rdfs:comment>
+ <rdfs:subClassOf rdf:resource="&dcqns;FormatScheme"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="HelmURI">
+ <rdfs:comment>HELM URIs of a mathematical resource</rdfs:comment>
+ <rdfs:subClassOf rdf:resource="&dcqns;URI"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdfs:Class>
-<rdfs:Class rdf:ID="ResourceFormat">
- <rdfs:comment>File format of a mathematical resource (possible values of the
-Dublin Core property Format)</rdfs:comment>
+<rdfs:Class rdf:ID="HelmID">
+ <rdfs:comment>HELM identifiers</rdfs:comment>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdfs:Class>
-<rdfs:Class rdf:ID="ResourceType">
- <rdfs:comment>Type of mathematical resource (possible values of the Dublin Core
-property Type)</rdfs:comment>
+<rdfs:Class rdf:ID="Contact">
+ <rdfs:comment>Creator contact information</rdfs:comment>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdfs:Class>
<!-- Added subProperties of the Property dc:relation -->
<rdf:Property rdf:ID="isBasedOn">
- <rdfs:subPropertyOf rdf:resource="http://www.cs.unibo.it/~schena/dublin_core.rdf#relation"/>
- <rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
<rdfs:comment>A relation between mathematical resources</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;relation"/>
+ <rdfs:domain rdf:resource="#MathResource"/>
+ <rdfs:range rdf:resource="#HelmURI"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="isBasisFor">
- <rdfs:subPropertyOf rdf:resource="http://www.cs.unibo.it/~schena/dublin_core.rdf#relation"/>
- <rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
<rdfs:comment>A relation between mathematical resources</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;relation"/>
+ <rdfs:domain rdf:resource="#MathResource"/>
+ <rdfs:range rdf:resource="#HelmURI"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="isSourceFor">
- <rdfs:subPropertyOf rdf:resource="http://www.cs.unibo.it/~schena/dublin_core.rdf#relation"/>
- <rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
<rdfs:comment>A relation between mathematical resources</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;relation"/>
+ <rdfs:domain rdf:resource="#MathResource"/>
+ <rdfs:range rdf:resource="#HelmURI"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="hasSource">
- <rdfs:subPropertyOf rdf:resource="http://www.cs.unibo.it/~schena/dublin_core.rdf#relation"/>
- <rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
<rdfs:comment>A relation between mathematical resources</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;relation"/>
+ <rdfs:domain rdf:resource="#MathResource"/>
+ <rdfs:range rdf:resource="#HelmURI"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<!-- subProperties of Property hth:dependence -->
-<rdf:Property rdf:ID="uses">
- <rdfs:subPropertyOf rdf:resource="#dependence"/>
+<rdf:Property rdf:ID="uses">
<rdfs:comment>A dependence between theory items (for instance: between a theorem or anything else and a variable)</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="#dependence"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="isUsedBy">
- <rdfs:subPropertyOf rdf:resource="#dependence"/>
<rdfs:comment>A dependence between theory items (for instance: between a variable and
a theorem or anything else)</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="#dependence"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="hasConsequence">
- <rdfs:subPropertyOf rdf:resource="#dependence"/>
<rdfs:comment>A dependence between theory items (for instance: between a theorem and
-a corollary)</rdfs:comment>
+a corollary)</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="#dependence"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="isConsequenceOf">
- <rdfs:subPropertyOf rdf:resource="#dependence"/>
<rdfs:comment>A dependence between theory items (for instance: between a corollary
and a theorem). Alternatively: IsResultOf</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="#dependence"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="hasPremise">
- <rdfs:subPropertyOf rdf:resource="#dependence"/>
<rdfs:comment>A dependence between theory items (for instance: between a theorem
and a lemma)</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="#dependence"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="isPremiseOf">
- <rdfs:subPropertyOf rdf:resource="#dependence"/>
<rdfs:comment>A dependence between theory items (for instance: between a lemma
and a theorem)</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="#dependence"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
-<!-- Text.general describes a document not of the following types. -->
-<!-- A helm theory has no type per se -->
-<!-- Instances of hth:ResourceType -->
-
-<rdfs:Class rdf:ID="Text.Abstract">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Paper">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Bibliography">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.HomePage">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.LectureNotes">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Monograph">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.PatentSpec">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Preprints">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Proceedings">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Review">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Separatum">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Serial">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.TechReport">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Thesis">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.Enclosure">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.General">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Image">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Software.Exec">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Software.Source">
- <rdf:type rdf:resource="#ResourceType"/>
-</rdfs:Class>
-
-<!-- NOTE: each helm format describes a logical framework -->
-<!-- Instances of hth:ResourceFormat -->
-
-<rdfs:Class rdf:ID="Text.xml">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.xhtml">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.mml">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.ps">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.pdf">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="Text.tex">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="XML.helm.cic">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="XML.helm.mizar">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
-
-<rdfs:Class rdf:ID="XML.helm.hol">
- <rdf:type rdf:resource="#ResourceFormat"/>
-</rdfs:Class>
+<!-- Possible values of rdf:value of the dct:Text instance of dct:DCMIType,
+can be: Abstract, Paper, Bibliography, HomePage, LectureNotes, Monograph,
+PatentSpec, Preprints, Proceedings, Review, Separatum, Serial, TechReport,
+Thesis, Enclosure, General. -->
+<!-- There are dct:Image and dct:Software. Possible values of rdf:value
+of the dct:Software can be: Exec, Source. -->
+<!-- Text.general describes a document not of the following types. -->
+<!-- A helm theory has no type per se -->
<!-- Properties -->
<rdf:Property rdf:ID="theoryItem">
+ <rdfs:comment>Theory item</rdfs:comment>
<rdfs:domain rdf:resource="#Theory"/>
<rdfs:range rdf:resource="#TheoryItem"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="dependence">
+ <rdfs:comment>Dependence between theory items</rdfs:comment>
<rdfs:domain rdf:resource="#TheoryItem"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="#HelmID"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="itemType">
<rdfs:comment>Axiom, Fact, Definition, Theorem, Lemma, Corollary,
Variable. Redundant info: it is already captured by the corresponding xml data</rdfs:comment>
<rdfs:domain rdf:resource="#TheoryItem"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<rdf:Property rdf:ID="label">
algorithm, specification, theorem containing algorithm, verification (that the
implementation satisfies the specification), predicate/relation, proposition</rdfs:comment>
<rdfs:domain rdf:resource="#TheoryItem"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<!-- ex. f:N->Z => N>->Z and n:Nat => n:Z -->
<rdf:Property rdf:ID="isCoercion">
<rdfs:comment>A Definition item can be a coercion</rdfs:comment>
<rdfs:domain rdf:resource="#TheoryItem"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="&xschemans;boolean"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
<!-- The id info is no more contained in the theory xml doc, so there isn't
redundant info between metadata and data -->
<rdf:Property rdf:ID="ident">
+ <rdfs:comment>Identifier of a theory item</rdfs:comment>
<rdfs:domain rdf:resource="#TheoryItem"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-</rdf:Property>
-
-<rdf:Property rdf:ID="institution">
- <rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
-</rdf:Property>
-
-<rdf:Property rdf:ID="contact">
- <rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="#HelmID"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
+<!-- There are also dcq:created and dcq:modified dc:date subProperties -->
<rdf:Property rdf:ID="firstVersion">
+ <rdfs:comment>Any additional information about the first version of the
+mathematical resource</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;description"/>
<rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
</rdf:Property>
<rdf:Property rdf:ID="modified">
+ <rdfs:comment>Any additional information about the modified version of the
+mathematical resource</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;description"/>
<rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
</rdf:Property>
-<!-- ATTENZIONE: si dovrebbero generare constraint che il dominio delle
-dc properties sia hth:MathResource e che il range sia strutturato. Ma per
-fare questo e' necessario definire NUOVE proprieta' (nuovo namespace) -->
-
-<rdf:Property rdf:ID="type">
- <rdfs:subPropertyOf rdf:resource="http://www.cs.unibo.it/~schena/dublin_core.rdf#type"/>
+<rdf:Property rdf:ID="institution">
+ <rdfs:comment>Affiliated institution of the creator of the mathematical
+resource</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;creator"/>
<rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="#ResourceType"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
-<rdf:Property rdf:ID="format">
- <rdfs:subPropertyOf rdf:resource="http://www.cs.unibo.it/~schena/dublin_core.rdf#format"/>
+<rdf:Property rdf:ID="contact">
+ <rdfs:comment>Contact of the creator of the mathematical
+resource</rdfs:comment>
+ <rdfs:subPropertyOf rdf:resource="&dcns;creator"/>
<rdfs:domain rdf:resource="#MathResource"/>
- <rdfs:range rdf:resource="#ResourceFormat"/>
+ <rdfs:range rdf:resource="#Contact"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
</rdf:Property>
-</rdf:RDF>
-
-
-
-
+<rdf:Property rdf:ID="email">
+ <rdfs:comment>E-mail of the creator of the mathematical
+resource</rdfs:comment>
+ <rdfs:domain rdf:resource="#Contact"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
+</rdf:Property>
+<rdf:Property rdf:ID="address">
+ <rdfs:comment>Address of the creator of the mathematical
+resource</rdfs:comment>
+ <rdfs:domain rdf:resource="#Contact"/>
+ <rdfs:range rdf:resource="&xschemans;string"/>
+ <rdfs:isDefinedBy rdf:resource = "&hthns;" />
+</rdf:Property>
+<!-- HELM: Here we want to constraint an external (dc) property to a
+particular range and domain (hth:MathResource). VRP gives a Warning when
+(extending or modifying) constraining the range of a property defined
+in another schema; the correct way is to specialize it with a subProperty. -->
+<!-- <rdf:Description rdf:about = "&dcns;type">
+ <rdfs:domain rdf:resource="#MathResource"/>
+</rdf:Description> -->
+</rdf:RDF>