2

I would like to create an ordinal scale class, to be a sibling class of "categorical value specification" in the ontology of biomedical investigations

Loosely speaking, each item in the scale is "more" than the previous.

I think I will need to indicate the rank or order of each item in my ordinal scale instances. Also, I would like to enforce that the instances of ordinal scales have one and only one item at each rank, with no gaps. So an ordinal scale with items ranked 1, 2, 3 would pass reasoning, but a scale with ranks 1,2,2 or 1,2,4 would be considered inconsistent. I guess it could be implemented in OWL or SWRL? I just don't know how.

Seems like these guys have envisioned this as ordered rdf:lists, but I haven't seen an implementation yet.

Prefix: : <http://example.com/>
Prefix: dc: <http://purl.org/dc/elements/1.1/>
Prefix: obo: <http://purl.obolibrary.org/obo/>
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: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>

Ontology: <http://example.com/Likert>

AnnotationProperty: rdfs:label

Datatype: owl:rational

Datatype: rdf:PlainLiteral

Datatype: xsd:integer

Datatype: xsd:nonNegativeInteger

ObjectProperty: hasPart

    InverseOf: 
        partOf

ObjectProperty: partOf

    InverseOf: 
        hasPart

DataProperty: hasMaxRank

    Characteristics: 
        Functional

    Domain: 
        ordinalValSpec

    Range: 
        xsd:nonNegativeInteger

    SubPropertyOf: 
        owl:topDataProperty

DataProperty: hasMinRank

    Characteristics: 
        Functional

    Domain: 
        ordinalValSpec

    Range: 
        xsd:nonNegativeInteger

DataProperty: hasRank

    Characteristics: 
        Functional

    Domain: 
        ordinalItem

    Range: 
        xsd:nonNegativeInteger

DataProperty: owl:topDataProperty

Class: obo:OBI_0001933

    Annotations: 
        rdfs:label "value specification"

Class: ordinalItem

    EquivalentTo: 
        partOf only ordinalValSpec

Class: ordinalValSpec

    EquivalentTo: 
        hasPart only ordinalItem,
        hasMaxRank exactly 1 owl:rational,
        hasMinRank exactly 1 owl:rational

    SubClassOf: 
        obo:OBI_0001933

Individual: Dislike

    Types: 
        ordinalItem

    Facts:  
     hasRank  1

Individual: Like

    Types: 
        ordinalItem

    Facts:  
     hasRank  3

Individual: Likert

    Types: 
        ordinalValSpec

    Facts:  
     hasPart  Dislike,
     hasPart  Like,
     hasPart  Neutral

Individual: Neutral

    Types: 
        ordinalItem

    Facts:  
     hasRank  2
Mark Miller
  • 3,011
  • 1
  • 14
  • 34

0 Answers0