First page Back Continue Last page Overview Graphics
OIL – Simple Standard
Ontology Inference Layer, year 2000
DTD
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for Ontology Integration Language OIL -->
<!-- version 01 May 2000 -->
<!ELEMENT oil:ontology (oil:ontology-container, oil:ontology-definitions)>
<!-- Ontology container -->
<!ELEMENT oil:ontology-container (rdf:RDF)>
<!-- This part contains meta-data about the ontology.
It is formatted according [Miller et al., 1999] -->
<!ELEMENT rdf:RDF (rdf:Description)>
<!ATTLIST rdf:RDF
xmlns:rdf CDATA #FIXED "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc CDATA #FIXED "http://purl.oclc.org/dc#"
xmlns:dcq CDATA #FIXED "http://purl.org/dc/qualifiers/1.0/"
>
<!ELEMENT rdf:Description ((dc:Title+, dc:Creator+, dc:Subject*, dc:Description+, dc:Publisher*, dc:Contributor*, dc:Date*, dc:Type+, dc:Format*, dc:Identifier+, dc:Source*, dc:Language+, dc:Relation*, dc:Rights*) | (dcq:descriptionType, rdf:value) | (dcq:relationType, rdf:value))>
<!ATTLIST rdf:Description
about CDATA #IMPLIED
>
<!ELEMENT dc:Title (#PCDATA)>
<!ELEMENT dc:Creator (#PCDATA)>
<!ELEMENT dc:Subject (#PCDATA)>
<!ELEMENT dc:Description (#PCDATA | rdf:Description)*>
<!ELEMENT dc:Publisher (#PCDATA)>
<!ELEMENT dc:Contributor (#PCDATA)>
<!ELEMENT dc:Date (#PCDATA)>
<!ELEMENT dc:Type (#PCDATA)>
<!ELEMENT dc:Format (#PCDATA)>
<!ELEMENT dc:Identifier (#PCDATA)>
<!ELEMENT dc:Source (#PCDATA)>
<!ELEMENT dc:Language (#PCDATA)>
<!ELEMENT dc:Relation (#PCDATA | rdf:Description)*>
<!ELEMENT dc:Rights (#PCDATA)>
<!ELEMENT dcq:descriptionType (#PCDATA)>
<!ELEMENT dcq:relationType (#PCDATA)>
<!ELEMENT rdf:value (#PCDATA)>
<!-- Ontology-definitions -->
<!ELEMENT oil:ontology-definitions (oil:imports?, oil:rule-base?, (oil:class-def | oil:slot-def)*)>
<!-- Import-section with URI's to other ontology-files -->
<!ELEMENT oil:imports (oil:URI)+>
<!ELEMENT oil:URI (#PCDATA)>
<!-- Rules with URL to definition -->
<!ELEMENT oil:rule-base (#PCDATA)>
<!ATTLIST oil:rule-base
type CDATA #REQUIRED
>
<!-- Class-expressions -->
<!ENTITY % oil:class-expr "( oil:class | oil:slot-constraint | oil:AND | oil:OR | oil:NOT)">
<!ELEMENT oil:AND ((%oil:class-expr;), (%oil:class-expr;)+)>
<!ELEMENT oil:OR ((%oil:class-expr;), (%oil:class-expr;)+)>
<!ELEMENT oil:NOT (%oil:class-expr;)>
<!-- Class-definition -->
<!ELEMENT oil:class-def (oil:class, oil:documentation?, oil:subclass-of?, oil:slot-constraint*)>
<!ATTLIST oil:class-def
type (primitive | defined) "primitive"
>
<!-- Class-name -->
<!ELEMENT oil:class EMPTY>
<!ATTLIST oil:class
name CDATA #REQUIRED
>
<!ELEMENT oil:documentation (#PCDATA)>
<!ELEMENT oil:subclass-of (%oil:class-expr;)+>
<!-- Slot-definition -->
<!ELEMENT oil:slot-def (oil:slot, oil:documentation?, oil:subslot-of?, oil:domain?, oil:range?, oil:inverse?, oil:properties?)>
<!-- Slot-name -->
<!ELEMENT oil:slot EMPTY>
<!ATTLIST oil:slot
name CDATA #REQUIRED
>
<!ELEMENT oil:subslot-of (oil:slot)+>
<!ELEMENT oil:domain (%oil:class-expr;)+>
<!ELEMENT oil:range (%oil:class-expr;)+>
<!ELEMENT oil:inverse (oil:slot)>
<!-- Slot-properties -->
<!ELEMENT oil:properties (oil:transitive | oil:symmetric | oil:other)*>
<!ELEMENT oil:transitive EMPTY>
<!ELEMENT oil:symmetric EMPTY>
<!ELEMENT oil:other (#PCDATA)>
<!-- Slot-constraint -->
<!ELEMENT oil:slot-constraint (oil:slot, (oil:has-value | oil:value-type | oil:cardinality | oil:max-cardinality | oil:min-cardinality)+)>
<!ELEMENT oil:has-value (%oil:class-expr;)+>
<!ELEMENT oil:value-type (%oil:class-expr;)+>
<!ELEMENT oil:cardinality (oil:number, %oil:class-expr;)+>
<!ELEMENT oil:max-cardinality (oil:number, %oil:class-expr;)+>
<!ELEMENT oil:min-cardinality (oil:number, %oil:class-expr;)+>
<!ELEMENT oil:number (#PCDATA)>
Notes: