@base <http://data.opendiscoveryspace.eu/lom_ontology_ods.owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ns: <http://www.w3.org/2006/vcard/ns#> .
@prefix owl2xml: <http://www.w3.org/2006/12/owl2-xml#> .
@prefix terms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix cc: <http://creativecommons.org/ns#> .

<>
    cc:license <http://creativecommons.org/licenses/by/3.0/> ;
    dc:creator """
			Enayat Rajabi (enayat.rajabi@uah.es)
		""" ;
    dc:description """An ontology and vocabulary used for exposing IEEE LOM, a metadata standard for educational contents, as Linked Data. 
		It is intended as a bridge for linkage of educational metadata into Linked Open Data (LOD). 
		In this ontology, we designed a mapping of IEEE LOM elements to RDF based on Linked Data principles. """@en ;
    dc:issued "2014-05-20"^^xsd:date ;
    dc:modified "2015-03-30"^^xsd:date ;
    dc:publisher """
University of Alcala (www.uah.es) """ ;
    dc:rights "Copyright Â© 2015 University of Alcala, Information Engineering (IE) research unit (http://www.ieru.org/) " ;
    dc:title "A vocabulary for exposing IEEE LOM metadata as Linked Open Data"@en ;
    a owl:Ontology ;
    rdfs:comment "-Version 1.0: covers a complete mapping of IEEE LOM to Linked Open Data"@en ;
    owl:versionInfo 1.0 .

:Annotation
    a owl:Class ;
    rdfs:comment "Comments on the educational use of a learning object, including information on when and by whom the comments were created."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dateTimeDescription
    ], [
        a owl:Restriction ;
        owl:onProperty :annotationDescription ;
        owl:someValuesFrom rdfs:Literal
    ], [
        a owl:Restriction ;
        owl:onClass :VCard ;
        owl:onProperty :annotationEntity ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dateTimeValue
    ] .

:Classification
    a owl:Class ;
    rdfs:comment "Description of where a learning object falls within a particular classification system. To define multiple classifications, there may be multiple instances of this category for a learning object."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "15"^^xsd:nonNegativeInteger ;
        owl:onClass :TaxonPath ;
        owl:onProperty :taxonPath
    ], [
        a owl:Restriction ;
        owl:onProperty :classificationDescription ;
        owl:someValuesFrom rdfs:Literal
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :classificationPurpose
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "40"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :classificationKeyword
    ] .

:Contribution
    a owl:Class ;
    rdfs:comment "Those entities (i.e., people, organizations) that have contributed to the state of this learning object during its life cycle (e.g., creation, edits, publication)."^^xsd:string ;
    rdfs:subClassOf owl:Thing .

:DateTime
    a owl:Class ;
    rdfs:comment "A point in time with accuracy at least as small as one second, as described by IEEE LOM in clause 8 (IEEE 1484.12.1-2002)."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:onDataRange xsd:dateTime ;
        owl:onProperty :dateTimeValue ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

:Duration
    a owl:Class ;
    rdfs:comment "An interval in time with accuracy at least as small as one second."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:onDataRange rdf:XMLLiteral ;
        owl:onProperty :durationDescription ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onDataRange rdf:XMLLiteral ;
        owl:onProperty :durationValue ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] .

:Educational
    terms:type ""^^rdfs:Literal ;
    a owl:Class ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:onClass :Duration ;
        owl:onProperty :educationalTypicalLearningTime ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalInteractivityType
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "5"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :educationalTypicalAgeRange
    ], [
        a owl:Restriction ;
        owl:maxCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalContext
    ], [
        a owl:Restriction ;
        owl:maxCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalIntendedUserRole
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalSemanticDensity
    ], [
        a owl:Restriction ;
        owl:maxCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalLanguage
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalDifficulty
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :description
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :educationalInteractivityLevel
    ] .

:Identifier
    terms:identifier ""^^rdfs:Literal ;
    a owl:Class ;
    rdfs:comment "A globally unique label that identifies either a learning object or a learning object metadata record."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :identifierCatalog
    ] .

:LangString
    a owl:Class ;
    rdfs:comment "Each of the possible semantically equivalent character strings of a langString."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:onProperty :hasValue ;
        owl:someValuesFrom rdfs:Literal
    ] .

:LearningObject
    terms:format ""^^rdfs:Literal ;
    terms:language ""^^rdfs:Literal ;
    terms:publisher ""^^rdfs:Literal ;
    terms:rights ""^^rdfs:Literal ;
    a owl:Class ;
    rdfs:comment "Learning Object" ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :technicalSize
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "30"^^xsd:nonNegativeInteger ;
        owl:onClass :Annotation ;
        owl:onProperty :annotation
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "40"^^xsd:nonNegativeInteger ;
        owl:onClass :TechnicalRequirement ;
        owl:onProperty :technicalRequirements
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "100"^^xsd:nonNegativeInteger ;
        owl:onClass :Relation ;
        owl:onProperty :relation
    ], [
        a owl:Restriction ;
        owl:maxCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onProperty :metadataSchema
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :MetaMetadataContribution ;
        owl:onProperty :metaMetadataContribution
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :keyword
    ], [
        a owl:Restriction ;
        owl:onClass :Duration ;
        owl:onProperty :technicalDuration ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :description
    ], [
        a owl:Restriction ;
        owl:maxCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onProperty :technicalLocation
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :coverage
    ], [
        a owl:Restriction ;
        owl:onDataRange xsd:boolean ;
        owl:onProperty :copyrightAndOtherRestrictions ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onDataRange xsd:boolean ;
        owl:onProperty :cost ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :Identifier ;
        owl:onProperty :metaMetadataIdentifier
    ], [
        a owl:Restriction ;
        owl:onProperty :lifeCycleVersion ;
        owl:someValuesFrom rdfs:Literal
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :Identifier ;
        owl:onProperty :identifier
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :lifeCycleStatus
    ], [
        a owl:Restriction ;
        owl:onProperty :technicalInstallationRemarks ;
        owl:someValuesFrom rdfs:Literal
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :metaMetadataLanguage
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :structure
    ], [
        a owl:Restriction ;
        owl:onProperty :otherPlatformRequirements ;
        owl:someValuesFrom rdfs:Literal
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :aggregationLevel
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "30"^^xsd:nonNegativeInteger ;
        owl:onClass :LifeCycleContribution ;
        owl:onProperty :lifeCycleContribution
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "100"^^xsd:nonNegativeInteger ;
        owl:onClass :Educational ;
        owl:onProperty :educational
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "40"^^xsd:nonNegativeInteger ;
        owl:onClass :Classification ;
        owl:onProperty :classification
    ] .

:LifeCycleContribution
    a owl:Class ;
    rdfs:subClassOf :Contribution, [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dateTimeValue
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :lifeCycleContributionRole
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dateTimeDescription
    ] .

:MetaMetadataContribution
    a owl:Class ;
    rdfs:subClassOf :Contribution, [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dateTimeDescription
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dateTimeValue
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :metaMetadataContributionRole
    ] .

:Relation
    a owl:Class ;
    rdfs:comment "A concept which defines the relationship between a learning object and other learning objects, if any."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :relationKind
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :LangString ;
        owl:onProperty :relatedResourceDescription
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "10"^^xsd:nonNegativeInteger ;
        owl:onClass :Identifier ;
        owl:onProperty :identifier
    ] .

:SingleTechnicalRequirement
    a owl:Class ;
    rdfs:comment "A technical capability necessary for using a learning object."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :orCompositeMinimumVersion
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :orCompositeType
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :orCompositeMaximumVersion
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :orCompositeName
    ] .

:Taxon
    a owl:Class ;
    rdfs:comment """A particular term within a taxonomy. A taxon is a node that has a defined label or
term. A taxon may also have an alphanumeric designation or identifier for standardized reference. Either or both the label and the entry may be used to designate a particular taxon. An ordered list of taxons creates a taxonomic path, i.e., \"taxonomic stairway\": this is a path from a more general to more specific entry in a classification."""@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:onProperty :taxonEntry ;
        owl:someValuesFrom rdfs:Literal
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :taxonId
    ] .

:TaxonPath
    a owl:Class ;
    rdfs:comment "A taxonomic path in a specific classification system. Each succeeding level is a refinement in the definition of the preceding level. There may be different paths, in the same or different classifications, which describe the same characteristic."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "15"^^xsd:nonNegativeInteger ;
        owl:onClass :Taxon ;
        owl:onProperty :classificationTaxon
    ], [
        a owl:Restriction ;
        owl:onProperty :taxonpathSource ;
        owl:someValuesFrom rdfs:Literal
    ] .

:TechnicalRequirement
    a owl:Class ;
    rdfs:comment "The technical capabilities necessary for using a learning object. There can be multiple requirements, in which case all are required, i.e., the logical connector is AND."@en ;
    rdfs:subClassOf owl:Thing, [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "40"^^xsd:nonNegativeInteger ;
        owl:onClass :SingleTechnicalRequirement ;
        owl:onProperty :isCompositeOf
    ] .

:VCard
    a owl:Class ;
    rdfs:comment "A vCard is a collection of one or more properties. A property is a uniquely named value. A set of properties can be grouped within a vCard. For example, the properties for a telephone number and comment can be grouped in order to preserve the coupling of the annotation with the telephone number. In addition to property groupings, a vC. versit  is developing a comprehensive family of PDI technologies based on open specifications and interoperability agreements to help meet this technology need."^^xsd:string ;
    rdfs:subClassOf owl:Thing ;
    ns:FN ""^^rdfs:Literal ;
    ns:N ""^^rdfs:Literal ;
    ns:ORG ""^^rdfs:Literal ;
    ns:email ""^^rdfs:Literal .

:aggregationLevel
    a owl:DatatypeProperty ;
    rdfs:comment "The functional granularity of this learning object. IEEE LOM element 1.8."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("1"^^xsd:string
            "2"^^xsd:string
            "3"^^xsd:string
            "4"^^xsd:string
        )
    ] .

:annotation
    a owl:ObjectProperty ;
    rdfs:comment "Comments on the educational use of a learning object, containing information on when and by whom the comments were created. This category enables educators to share their assessments of learning objects, suggestions for use, etc. IEEE LOM element 8."@en ;
    rdfs:range :Annotation .

:annotationDate
    a owl:ObjectProperty ;
    rdfs:comment "Date that this annotation was created. IEEE LOM element 8.2."@en ;
    rdfs:domain :Annotation ;
    rdfs:range :DateTime .

:annotationDescription
    a owl:DatatypeProperty ;
    rdfs:domain :Annotation ;
    rdfs:range rdfs:Literal .

:annotationEntity
    a owl:DatatypeProperty, owl:ObjectProperty, owl:Thing ;
    rdfs:comment "Entity (i.e., people, organization) that created this annotation. IEEE LOM element 8.1."@en ;
    owl:dataPropertyDomain :Annotation ;
    owl:dataPropertyRange xsd:string .

:classification
    a owl:ObjectProperty ;
    rdfs:comment "Description of where a learning object falls within a particular classification system. IEEE LOM element 9."@en ;
    rdfs:range :Classification .

:classificationDescription
    a owl:DatatypeProperty ;
    rdfs:domain :Classification ;
    rdfs:range rdfs:Literal .

:classificationKeyword
    a owl:ObjectProperty ;
    rdfs:comment "Keywords and phrases descriptive of the learning object relative to the stated 9.1:Classification.Purpose of this specific classification, such as accessibility, security level, etc., most relevant first. IEEE LOM element 9.4"^^xsd:string ;
    rdfs:domain :Classification .

:classificationPurpose
    a owl:DatatypeProperty ;
    rdfs:comment "The purpose of classifying a learning object. IEEE LOM element 9.1."@en ;
    rdfs:domain :Classification ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("accessibility"^^xsd:string
            "competency"^^xsd:string
            "discipline"^^xsd:string
            "educational level"^^xsd:string
            "educational objective"^^xsd:string
            "idea"^^xsd:string
            "prerequisite"^^xsd:string
            "restrictions"^^xsd:string
            "security level"^^xsd:string
            "skill level"^^xsd:string
        )
    ] .

:classificationTaxon
    a owl:ObjectProperty ;
    rdfs:comment "A particular term within a taxonomy which serves to classify a learning object. IEEE LOM element 9.2.2."@en ;
    rdfs:domain :TaxonPath ;
    rdfs:range :Taxon .

:contributionDateTime
    a owl:ObjectProperty ;
    rdfs:comment "The date of the contribution. IEEE LOM element 3.2.3."@en ;
    rdfs:domain :Contribution ;
    rdfs:range :DateTime .

:contributionEntity
    a owl:ObjectProperty ;
    rdfs:comment "The identification of and information about entities (i.e., people, organizations) contributing to this learning object. The entities shall be ordered as most relevant first. IEEE LOM element 3.2.2."^^xsd:string ;
    rdfs:domain :Contribution ;
    rdfs:range :VCard .

:copyrightAndOtherRestrictions
    a owl:DatatypeProperty ;
    rdfs:comment "Whether copyright or other restrictions apply to the use of this learning object. IEEE LOM element 6.2."@en ;
    rdfs:range xsd:boolean .

:copyrightDescription
    a owl:DatatypeProperty ;
    rdfs:domain :LearningObject ;
    rdfs:range rdfs:Literal .

:cost
    a owl:DatatypeProperty ;
    rdfs:comment "Whether use of the learning object requires payment. IEEE LOM element 6.1."@en ;
    rdfs:range xsd:boolean .

:coverage
    terms:coverage ""^^rdfs:Literal ;
    a owl:ObjectProperty ;
    rdfs:comment """The time, culture, geography or region to which this learning object applies.
The extent or scope of the content of the learning object. Coverage will typically include spatial location (a place name or geographic coordinates), temporal period (a period label, date, or date range) or jurisdiction (such as a named administrative entity). Recommended best practice is to select a value from a controlled vocabulary (for example, the Thesaurus of Geographic Names [TGN]) and that, where appropriate, named places or time periods be used in preference to numeric identifiers such as sets of coordinates or date ranges. IEEE LOM element 1.6."""@en ;
    rdfs:domain :LearningObject .

:dateTimeDescription
    a owl:DatatypeProperty ;
    rdfs:domain :Contribution ;
    rdfs:range rdfs:Literal .

:dateTimeValue
    a owl:DatatypeProperty ;
    rdfs:comment "Date time value in format: YYYY[-MM[-DD[Thh[:mm[:ss[.s[TZD]]]]]]]"@en ;
    rdfs:domain :DateTime ;
    rdfs:range xsd:dateTime .

:description
    terms:description ""^^rdfs:Literal ;
    a owl:ObjectProperty ;
    rdfs:comment "A textual description of the content of this learning object. IEEE LOM element 1.4."@en, "Comments on how this learning object is to be used. IEEE LOM element 5.10"^^xsd:string ;
    rdfs:domain :LearningObject .

:duration
    a owl:ObjectProperty ;
    rdfs:domain :Duration .

:durationDescription
    a owl:DatatypeProperty ;
    rdfs:domain :Duration ;
    rdfs:range rdfs:Literal .

:durationValue
    a owl:DatatypeProperty ;
    rdfs:domain :Duration ;
    rdfs:range rdfs:Literal .

:educational
    a owl:ObjectProperty ;
    rdfs:comment "This category describes the key educational or pedagogic characteristics of this learning object. IEEE LOM element 5."^^xsd:string ;
    rdfs:domain :LearningObject ;
    rdfs:range :Educational .

:educationalContext
    a owl:DatatypeProperty ;
    rdfs:comment "The principal environment within which the learning and use of this learning object is intended to take place. IEEE LOM element 5.6."@en ;
    rdfs:domain :Educational ;
    rdfs:range rdfs:Literal, xsd:short, [
        a owl:DataRange ;
        owl:oneOf ("higher education"^^xsd:string
            "other"^^xsd:string
            "school"^^xsd:string
            "training"^^xsd:string
        )
    ] .

:educationalDifficulty
    a owl:DatatypeProperty ;
    rdfs:comment "How hard it is to work with or through this learning object for the typical intended target audience. IEEE LOM element 5.8"@en ;
    rdfs:domain :Educational ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("difficult"^^xsd:string
            "easy"^^xsd:string
            "medium"^^xsd:string
            "very difficult"^^xsd:string
            "very easy"^^xsd:string
        )
    ] .

:educationalIntendedUserRole
    a owl:DatatypeProperty ;
    rdfs:comment "Principal user(s) for which this learning object was designed, most dominant first. IEEE LOM element 5.5."@en ;
    rdfs:domain :Educational ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("author"^^xsd:string
            "learner"^^xsd:string
            "manager"^^xsd:string
            "teacher"^^xsd:string
        )
    ] .

:educationalInteractivityLevel
    a owl:DatatypeProperty ;
    rdfs:comment "The degree of interactivity characterizing this learning object. Interactivity in this context refers to the degree to which the learner can influence the aspect or behavior of the learning object. IEEE LOM element 5.3."^^xsd:string ;
    rdfs:domain :Educational ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("high"^^xsd:string
            "low"^^xsd:string
            "medium"^^xsd:string
            "very high"^^xsd:string
            "very low"^^xsd:string
        )
    ] .

:educationalInteractivityType
    a owl:DatatypeProperty ;
    rdfs:comment "Predominant mode of learning supported by this learning object. IEEE LOM element 5.1."@en ;
    rdfs:domain :Educational ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("active"^^xsd:string
            "expositive"^^xsd:string
            "mised"^^xsd:string
        )
    ] .

:educationalLanguage
    a owl:DatatypeProperty ;
    rdfs:comment "The primary human language or languages used within this learning object to communicate to the intended user. If the learning object had no lingual content (as in the case of a picture of the Mona Lisa, for example), then the appropriate value for this data element would be \"none\". IEEE LOM element 1.3."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("ba"^^xsd:string
            "ca"^^xsd:string
            "es"^^xsd:string
            "ga"^^xsd:string
            "none"^^xsd:string
        )
    ] .

:educationalSemanticDensity
    a owl:DatatypeProperty ;
    rdfs:comment "The degree of conciseness of a learning object. The semantic density of a learning object may be estimated in terms of its size, span, or --in the case of self-timed resources such as audio or video-- duration. IEEE LOM element 5.4."^^xsd:string ;
    rdfs:domain :Educational ;
    rdfs:range xsd:string, [
        a owl:DataRange ;
        owl:oneOf ("higherEducation"^^xsd:string
            "other"^^xsd:string
            "school"^^xsd:string
            "training"^^xsd:string
        )
    ], [
        a owl:DataRange ;
        owl:oneOf ("high"^^xsd:string
            "low"^^xsd:string
            "medium"^^xsd:string
            "very high"^^xsd:string
            "very low"^^xsd:string
        )
    ] .

:educationalTypicalAgeRange
    a owl:ObjectProperty ;
    rdf:value ""^^rdfs:Literal ;
    rdfs:comment "Age of the typical intended user. IEEE LOM element 5.7."^^xsd:string ;
    rdfs:domain :Educational .

:educationalTypicalLearningTime
    a owl:ObjectProperty ;
    rdfs:domain :Educational ;
    rdfs:range :Duration .

:email
    a owl:DatatypeProperty ;
    rdfs:comment "Email as it appears in the vCard"^^xsd:string ;
    rdfs:domain :VCard ;
    rdfs:range xsd:string .

:hasRelatedResource
    a owl:ObjectProperty ;
    rdfs:comment "The target learning object that a relationship references. IEEE LOM element 7.2."@en ;
    rdfs:domain :Relation ;
    rdfs:range :Identifier .

:hasResourceIdentifier
    a owl:ObjectProperty ;
    rdfs:comment "A globally unique label that identifies the target  learning object. IEEE LOM element 7.2.1."@en ;
    rdfs:range :Identifier .

:hasTechnicalFormat
    a owl:DatatypeProperty ;
    rdfs:comment "Technical datatype(s) of (all the components of) this learning object. This information is used to identify the software needed to access the learning object. IEEE LOM element 4.1."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range xsd:string .

:hasValue
    a owl:DatatypeProperty ;
    rdfs:comment "This predicate relates a singleLangString to the character string containing its textual description."@en ;
    rdfs:range xsd:string .

:identifier
    a owl:InverseFunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "This predicate represents the fact that a learning object has a label that identifies it. IEEE LOM element 1.1."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range :Identifier .

:identifierCatalog
    a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:comment "This predicate relates a lomIdentifier to the name or designator of the identification or cataloging scheme used for its identification. It is usually a namespace scheme. IEEE LOM element 1.1, 3.1, 7.2.1."@en ;
    rdfs:domain :Identifier ;
    rdfs:range xsd:string .

:identifierEntry
    a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:comment "This predicate relates a lomIdentifier to the value of the identifier within the identification or cataloging scheme that designates or identifies a learning object or a learning object metadata record (a namespace specific string).  IEEE LOM element 1.1, 3.1, 7.2.1."@en ;
    rdfs:domain :Identifier ;
    rdfs:range xsd:string .

:includesSingleLangString
    a owl:ObjectProperty ;
    rdfs:comment "LangString values may include multiple semantically equivalent character strings, such as translations or alternative descriptions. Each of these is represented by a singleLangString."@en ;
    rdfs:range :LangString .

:isCompositeOf
    a owl:ObjectProperty ;
    rdfs:comment "When grouping multiple requirements, the composite requirement is satisfied when one of the component requirements is satisfied, i.e., the logical connector is OR. IEEE LOM element 4.4.1."@en ;
    rdfs:domain :TechnicalRequirement ;
    rdfs:range :SingleTechnicalRequirement .

:keyword
    a owl:ObjectProperty ;
    rdf:value ""^^rdfs:Literal ;
    rdfs:comment "A keyword or phrase describing the topic of this learning object. This data element should not be used for characteristics that can be described by other data elements. IEEE LOM element 1.5."@en ;
    rdfs:domain :LearningObject .

:lifeCycleContribution
    a owl:ObjectProperty .

:lifeCycleContributionRole
    a owl:DatatypeProperty ;
    rdfs:comment "Kind of contribution. IEEE LOM element 2.3.1."@en ;
    rdfs:domain :LifeCycleContribution ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("author"^^xsd:string
            "content provider"^^xsd:string
            "editor"^^xsd:string
            "educational validator"^^xsd:string
            "graphical designer"^^xsd:string
            "initiator"^^xsd:string
            "instructional designer"^^xsd:string
            "publisher"^^xsd:string
            "script writer"^^xsd:string
            "subject matter expert"^^xsd:string
            "technical implementer"^^xsd:string
            "technical validator"^^xsd:string
            "terminator"^^xsd:string
            "unknown"^^xsd:string
            "validator"^^xsd:string
        )
    ] .

:lifeCycleStatus
    a owl:DatatypeProperty ;
    rdfs:comment "The completion status or condition of this learning object. IEEE LOM element 2.2"^^xsd:string ;
    rdfs:domain :LearningObject ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("draft"^^xsd:string
            "final"^^xsd:string
            "revised"^^xsd:string
            "unavalaible"^^xsd:string
        )
    ] .

:lifeCycleVersion
    a owl:DatatypeProperty ;
    rdfs:domain :LearningObject ;
    rdfs:range rdfs:Literal .

:metaMetadataContribution
    a owl:ObjectProperty ;
    rdfs:comment "Those entities (i.e., people, organizations) that have contributed to the state of this learning object during its life cycle (e.g.,creation, edits, publication)."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range :LifeCycleContribution .

:metaMetadataContributionRole
    a owl:DatatypeProperty ;
    rdfs:comment "Kind of contribution. IEEE LOM element 3.2.1."^^xsd:string ;
    rdfs:domain :MetaMetadataContribution ;
    rdfs:range xsd:string .

:metaMetadataIdentifier
    a owl:ObjectProperty ;
    rdfs:comment "A globally unique label that identifies this metadata record. IEEE LOM element 3.1."^^xsd:string ;
    rdfs:domain :LearningObject ;
    rdfs:range :Identifier .

:metaMetadataLanguage
    a owl:DatatypeProperty ;
    rdfs:comment "Language of this metadata instance. This is the default language for all LangString values in this metadata instance. If a value for this data element is not present in a metadata instance, then there is no default language for LangString values. IEEE LOM element 3.4."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("ba"^^xsd:string
            "ca"^^xsd:string
            "es"^^xsd:string
            "ga"^^xsd:string
        )
    ] .

:metadataSchema
    a owl:DatatypeProperty ;
    rdfs:comment "The name and version of the authoritative specification used to create this metadata instance. IEEE LOM element 3.3."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range xsd:string .

:orCompositeMaximumVersion
    a owl:DatatypeProperty ;
    rdfs:comment "Highest possible version of the required technology to use the learning object. IEEE LOM element 4.4.1.4."@en ;
    rdfs:domain :SingleTechnicalRequirement ;
    rdfs:range xsd:string .

:orCompositeMinimumVersion
    a owl:DatatypeProperty ;
    rdfs:comment "Lowest possible version of the required technology to use the learning object. IEEE LOM element 4.4.1.3."@en ;
    rdfs:domain :SingleTechnicalRequirement ;
    rdfs:range xsd:string .

:orCompositeName
    a owl:DatatypeProperty ;
    rdfs:comment "Name of the required technology to use a learning object. IEEE LOM element 4.4.1.2."@en ;
    rdfs:domain :SingleTechnicalRequirement ;
    rdfs:range xsd:string .

:orCompositeType
    a owl:DatatypeProperty ;
    rdfs:comment "The technology required to use this learning object, e.g., hardware, software, network, etc. IEEE LOM element 4.4.1.1."@en ;
    rdfs:domain :SingleTechnicalRequirement ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("browser"^^xsd:string
            "operating system"^^xsd:string
        )
    ] .

:otherPlatformRequirements
    a owl:DatatypeProperty ;
    rdfs:domain :LearningObject ;
    rdfs:range rdfs:Literal .

:relatedResourceDescription
    terms:description ""^^rdfs:Literal ;
    a owl:ObjectProperty ;
    rdfs:domain :Relation ;
    rdfs:range :LangString .

:relation
    a owl:ObjectProperty ;
    rdfs:comment "Relationship between a learning object and other learning objects, if any."@en ;
    rdfs:range :Relation .

:relationKind
    a owl:DatatypeProperty ;
    rdfs:comment "Nature of the relationship between a learning object and the target learning object, identified by 7.2:Relation.Resource. IEEE LOM element 7.1."@en ;
    rdfs:domain :Relation ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("hasFormat"^^xsd:string
            "hasPart"^^xsd:string
            "hasVersion"^^xsd:string
            "isBasedOn"^^xsd:string
            "isBasisFor"^^xsd:string
            "isFormatOf"^^xsd:string
            "isPartOf"^^xsd:string
            "isReferencedBy"^^xsd:string
            "isRequiredBy"^^xsd:string
            "isVersionOf"^^xsd:string
            "references"^^xsd:string
            "requires"^^xsd:string
        )
    ] .

:structure
    a owl:DatatypeProperty ;
    rdfs:comment "Underlying organizational structure of this learning object. IEEE LOM element 1.7."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range [
        a owl:DataRange ;
        owl:oneOf ("atomic"^^xsd:string
            "collection"^^xsd:string
            "hierarchical"^^xsd:string
            "linear"^^xsd:string
            "networked"^^xsd:string
        )
    ] .

:taxonEntry
    a owl:DatatypeProperty ;
    rdfs:range rdfs:Literal .

:taxonId
    a owl:DatatypeProperty ;
    rdfs:comment "The identifier of the taxon, such as a number or letter combination provided by the source of the taxonomy. IEEE LOM element 9.2.2.1."@en ;
    rdfs:domain :Taxon ;
    rdfs:range xsd:string .

:taxonPath
    a owl:ObjectProperty ;
    rdfs:comment "A taxonomic path in a specific classification system according to which a learning object is classified. IEEE LOM element 9.2."@en ;
    rdfs:domain :Classification ;
    rdfs:range :TaxonPath .

:taxonpathSource
    a owl:DatatypeProperty ;
    rdfs:domain :TaxonPath ;
    rdfs:range rdfs:Literal .

:technicalDuration
    a owl:ObjectProperty ;
    rdfs:domain :Duration ;
    rdfs:range :LearningObject .

:technicalInstallationRemarks
    a owl:DatatypeProperty ;
    rdfs:domain :LearningObject ;
    rdfs:range rdfs:Literal .

:technicalLocation
    a owl:DatatypeProperty ;
    rdfs:comment "A string that is used to access this learning object. It may be a location  (e.g., Universal Resource Locator), or a method that resolves to a location (e.g., Universal Resource Identifier). The first element of this list shall be the preferable location. IEEE LOM element 4.3."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range xsd:string .

:technicalRequirements
    a owl:ObjectProperty ;
    rdfs:comment "A technical capability necessary for using a learning object. IEEE LOM Element \"4.4. Requirement\"."@en ;
    rdfs:range :TechnicalRequirement .

:technicalSize
    a owl:DatatypeProperty ;
    rdfs:comment "The size of the digital learning object in bytes (not Mbytes, GB, etc.). The size is represented as a decimal value. This data element shall refer to the actual size of this learning object. If the learning object is compressed, then this data element shall refer to the uncompressed size. IEEE LOM element 4.2."@en ;
    rdfs:domain :LearningObject ;
    rdfs:range xsd:string .

dc:publisher
    a owl:AnnotationProperty .

terms:coverage
    a owl:AnnotationProperty .

terms:description
    a owl:AnnotationProperty .

terms:format
    a owl:AnnotationProperty .

terms:identifier
    a owl:AnnotationProperty .

terms:language
    a owl:AnnotationProperty .

terms:publisher
    a owl:AnnotationProperty .

terms:rights
    a owl:AnnotationProperty .

terms:title
    a owl:AnnotationProperty .

terms:type
    a owl:AnnotationProperty .

rdf:value
    a owl:AnnotationProperty .

owl:Thing
    a owl:Class .

ns:FN
    a owl:AnnotationProperty .

ns:N
    a owl:AnnotationProperty .

ns:ORG
    a owl:AnnotationProperty .

ns:email
    a owl:AnnotationProperty .

