protegeproject/cellfie-plugin

Error when using object property in axiom with "only" quantifier

kataph opened this issue · 4 comments

In my ontology there is an object property, say "my-object-property".
When I try execute a rule such as:

Class: @B*
SubClassOf: my-object-property some @F*

everything works fine. But if I try to execute the rule

Class: @B*
SubClassOf: my-object-property only @F*

the error "Property <[Ontology IRI]#my-object-property> is not an object property" is displayed.
Can this error be resolved and/or is there any workaround?

Can you post an OWL ontology containing my-object-property that I can test with.

Also make sure you are using the latest 2.2.1 version of Cellfie.

@martinjoconnor Thank you for your attention.
The problem can be reproduced on any ontology, just use e.g. owl:topObjectProperty as object property, the rest of the ontology can be empty. You can also use any worksheet with any data: just put some random values inside the columns B and F (analogously if you change the columns in the rules).
I investigated a little bit more and realized that the error props up exactly when there are empty cells in the F column.
Modifying the rule in eg

Class: @B*
SubClassOf: owl:topObjectProperty only @F*(mm:ProcessIfEmptyLocation) 

Creates a class with null ID and uses it to implement the axiom. Attempting to use the options mm:SkipIfEmptyLocation or Warning does not result in any axioms being written, even if there are rows where the value of the cells in the F column is not empty (notice that this is not the behaviour of the "some" quantifier).

With this information I can find a workaround for the issue.

For sake of completeness, I attach a possible combination of files that reproduces the issue.
error.zip

Finally, my version of Cellfie should be the current one.

Thanks for the detailed report. I'll try to take a look at this in the next week or so.