Skip to content

Inconsistent type assertions when converting ObjectInverseOf to turtle #1161

@cthoyt

Description

@cthoyt

This issue is about inconsistent behavior when using ObjectInverseOf in OWL functional syntax.

I'm on ROBOT version v1.9.7 / OWL API v.5.29

Examples

Explicit type declaration inside SubObjectPropertyOf

# test1.ofn
Prefix(a:=<https://example.org/a:>)
Ontology(<https://example.org/ontology_2.ofn>
    SubObjectPropertyOf(a:ope1 ObjectInverseOf(a:ope2))
)

generates the following turtle with robot convert -i test1.ofn -o test1.ttl (note, this output is abridged to the relevant parts):

# test1.ttl
a:ope1 rdf:type owl:ObjectProperty ;
       rdfs:subPropertyOf [ owl:inverseOf a:ope2
                          ] .

a:ope2 rdf:type owl:ObjectProperty .

No explicit type declaration inside EquivalentObjectProperties

# test2.ofn
Prefix(a:=<https://example.org/a:>)
Ontology(<https://example.org/ontology_1.ofn>
    EquivalentObjectProperties(a:ope1 ObjectInverseOf(a:ope2))
)

generates the following turtle with robot convert -i test2.ofn -o test2.ttl (note, this output is abridged to the relevant parts):

# test2.ttl
a:ope1 rdf:type owl:ObjectProperty ;
       owl:equivalentProperty [ owl:inverseOf a:ope2
                              ] .

Desired Behavior

I would like the EquivalentObjectProperties to also output a:ope2 rdf:type owl:ObjectProperty .. More generally, I would like to assume any time ObjectInverseOf(a:ope2) is used, regardless of where in the structure, that this type declaration gets made

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions