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.