# Saved by TopBraid on Wed Jun 01 02:14:28 PDT 2011
# baseURI: http://www.linkedmodel.org/1.0/schema/dtype
# imports: http://www.linkedmodel.org/1.2/schema/vaem

@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix dtype:   <http://www.linkedmodel.org/schema/dtype#> .
@prefix dtype-1.0:  <http://www.linkedmodel.org/1.0/schema/dtype#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vaem:    <http://www.linkedmodel.org/schema/vaem#> .
@prefix voag:    <http://voag.linkedmodel.org/schema/voag#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .

<http://www.linkedmodel.org/1.0/schema/dtype>
      rdf:type owl:Ontology ;
      rdfs:label "Datatype Ontology"^^xsd:string ;
      dc:rights "The LinkedModel DTYPE Ontology is issued under a Creative Commons Attribution Share Alike 3.0 United States License. Attribution should be made to <a href=\"http://www.topquadrant.com\">TopQuadrant, Inc.</a>."^^xsd:string ;
      dc:subject "Datatypes"^^xsd:string ;
      dc:title "Datatype Ontology"^^xsd:string ;
      voag:hasLicenseType voag:CC-SHAREALIKE_3PT0-US ;
      vaem:acronym "DTYPE"^^xsd:string ;
      vaem:dateCreated "2011-29-05"^^vaem:dateUnion ;
      vaem:description "The ontology 'dtype' provides a specification of simple data types such as enumerations and codelists. These are needed in support of the conversion of XML Schemas and UML Models to OWL."^^xsd:string ;
      vaem:hasCatalogEntry
              <dtype:DTYPE-CatalogEntry> ;
      vaem:intent "The purpose of 'dtype' is to provide a foundation for expressing rich data types. These data types are typically needed when dealing with OWL representations of data structures derived from XML Schema. "^^xsd:string ;
      vaem:namespace "http://www.linkedmodel.org/schema/dtype"^^xsd:anyURI ;
      vaem:namespacePrefix
              "dtype"^^xsd:string ;
      vaem:revisionNumber "1.0"^^xsd:string ;
      vaem:specificity "1"^^vaem:integer_1to5 ;
      vaem:usesNonImportedResource
              dc:rights , dc:subject ;
      owl:imports <http://www.linkedmodel.org/1.2/schema/vaem> ;
      owl:versionIRI <http://www.linkedmodel.org/1.0/schema/dtype> ;
      owl:versionInfo "Created with TopBraid Composer"^^xsd:string .

dtype:CodeList
      rdf:type owl:Class ;
      rdfs:label "Codelist"^^xsd:string ;
      rdfs:subClassOf dtype:Enumeration ;
      vaem:definition "A codelist is a controlled vocabulary of terms that are used to represent permissible values of a variable in information systems. The representaiton of codes in 'dtype' has been influenced by CCTS and UBL."^^xsd:string .

dtype:CompositeCodeList
      rdf:type owl:Class ;
      rdfs:label "Composite Code List"^^xsd:string ;
      rdfs:subClassOf dtype:CodeList ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:CodeList ;
                owl:onProperty dtype:compositeOf
              ] ;
      vaem:definition "A composite codelist is a codelist made up of other codelists. It does not introduce any new codes."^^xsd:string ;
      owl:disjointWith dtype:SimpleCodeList , dtype:DerivedCodeList .

dtype:DerivedCodeList
      rdf:type owl:Class ;
      rdfs:label "Derived Code List"^^xsd:string ;
      rdfs:subClassOf dtype:CodeList ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:ValueReference ;
                owl:onProperty dtype:hasMember
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:derivedFrom
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:CodeList ;
                owl:onProperty dtype:derivedFrom
              ] ;
      vaem:definition "A derived codelist is a sublist of another codelist. The members that it has must be members of the source list."^^xsd:string ;
      owl:disjointWith dtype:SimpleCodeList , dtype:CompositeCodeList .

dtype:EnumeratedValue
      rdf:type owl:Class ;
      rdfs:label "DTYPE Enumerated value"^^xsd:string ;
      rdfs:subClassOf owl:Thing ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:position
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:code
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:minCardinality "0"^^xsd:nonNegativeInteger ;
                owl:onProperty vaem:url
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:cardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:value
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty vaem:description
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:order
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty vaem:name
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty vaem:id
              ] ;
      vaem:definition "The base class for datatypes that have values that are restriced to a set of literals or tokens. The members of the restriction may themselve be restriced by facets that apply to scalar data types."^^xsd:string .

dtype:Enumeration
      rdf:type owl:Class ;
      rdfs:label "DTYPE Enumeration"^^xsd:string ;
      rdfs:subClassOf owl:Thing ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:defaultValue
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:EnumeratedValue ;
                owl:onProperty dtype:defaultValue
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:EnumeratedValue ;
                owl:onProperty dtype:value
              ] ;
      vaem:definition "A type that serves as a container for the enumerated values of an enumeration. This enables the enumeration itself to be referenceable. One need for this is in determing the default value of an enumeration , another need is in the management of sub-enumerations and composite enumerations."^^xsd:string .

dtype:SimpleCodeList
      rdf:type owl:Class ;
      rdfs:label "Simple Code List"^^xsd:string ;
      rdfs:subClassOf dtype:CodeList ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:EnumeratedValue ;
                owl:onProperty dtype:hasMember
              ] ;
      vaem:definition "A simple codelist is one made up only of enumerated values."^^xsd:string ;
      owl:disjointWith dtype:CompositeCodeList , dtype:DerivedCodeList .

dtype:ValueReference
      rdf:type owl:Class ;
      rdfs:label "Value Reference"^^xsd:string ;
      rdfs:subClassOf owl:Thing ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:cardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:refersTo
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
                owl:onProperty dtype:position
              ] ;
      rdfs:subClassOf
              [ rdf:type owl:Restriction ;
                owl:allValuesFrom dtype:EnumeratedValue ;
                owl:onProperty dtype:refersTo
              ] ;
      vaem:definition "A value reference is a pointer to an Enumerated Value. The original position of the value can be overridden by the position attribute."^^xsd:string .

dtype:code
      rdf:type owl:DatatypeProperty ;
      rdfs:label "code"^^xsd:string ;
      rdfs:range xsd:anySimpleType ;
      vaem:definition "A property for expressing an encoded value. The range has been set to 'xsd:anySimpleType' to allow for a variety of scalar datatypes."^^xsd:string .

dtype:compositeOf
      rdf:type owl:ObjectProperty ;
      rdfs:label "composite of"^^xsd:string ;
      vaem:definition "Aproperty for constructing composite data structures"^^xsd:string .

dtype:defaultValue
      rdf:type rdf:Property ;
      rdfs:label "default value"^^xsd:string ;
      vaem:definition "The property 'dtype:defaultValue' is a general property for specifying a value in situations where none is specified, or can be determined. In some cases of use, this property could have a scalar value and in other cases may need to refer to a first class concept that holds a 'value object'.  For this reason, the  type of this property is set as 'rdf:Property' and the property is rangeless."^^xsd:string .

dtype:derivedFrom
      rdf:type owl:ObjectProperty ;
      rdfs:label "derived from"^^xsd:string ;
      vaem:definition "A property for specifying a derivation relationship."^^xsd:string .

dtype:hasMember
      rdf:type owl:ObjectProperty ;
      rdfs:label "has member"^^xsd:string ;
      vaem:definition "A property for specifying how member elements make up a data structure."^^xsd:string .

dtype:literal
      rdf:type owl:DatatypeProperty ;
      rdfs:label "literal"^^xsd:string ;
      rdfs:range xsd:string ;
      vaem:definition "A general purpose property for holding string literals."^^xsd:string .

dtype:order
      rdf:type owl:DatatypeProperty ;
      rdfs:label "order"^^xsd:string ;
      rdfs:range xsd:nonNegativeInteger ;
      rdfs:seeAlso dtype:orderIndex ;
      vaem:definition "The property 'dtype:order' provides a means to specify a precedence. One use of order is in specifying ordered enumerations such as 'voag:ConfidentialityLevel'.  A similar property, but with an important type difference, is 'vaem:orderIndex'. This is for use on property occurrences in class axioms where it can be placed on a restriction to specify how that property may be transformed into other representations where ordering has some importance, for example, in XML Schema sequences.  Whereas 'vaem:order' is a datatype property, 'vaem:orderIndex' is an annotation property."^^xsd:string .

dtype:orderIndex
      rdf:type owl:AnnotationProperty ;
      rdfs:label "order index"^^xsd:string ;
      rdfs:range xsd:nonNegativeInteger ;
      vaem:definition "The property 'dtype:orderIndex' is an annotation property to specify a position that some value or structure will have. One use is to specify the place that a resource has in a sequence. One use is on property occurrences in class axioms. Here 'vaem:orderIndex' is placed on a restriction to specify how that property may be transformed into a representation where ordering has some importance, for example, in XML Schema sequences."^^xsd:string .

dtype:position
      rdf:type owl:DatatypeProperty ;
      rdfs:label "code"^^xsd:string ;
      rdfs:range xsd:nonNegativeInteger .

dtype:refersTo
      rdf:type owl:ObjectProperty ;
      rdfs:label "refers to"^^xsd:string ;
      vaem:definition "An indirection pointer for relating a slot in am occurrence data structure, such as 'dtype:ValueReference' with another resource."^^xsd:string .

dtype:value
      rdf:type rdf:Property ;
      rdfs:label "value"^^xsd:string ;
      vaem:definition "The property 'dtype:value' is a general property that in some cases could have scalar values and in other cases may refer to a first class concept that is a 'value object'. For this reason, the  type of this property is set as 'rdf:Property' and the property is rangeless."^^xsd:string .
