Unsupported Axiom: Ignoring transitivity and/or complex subproperty axioms for BFO_0000170

158 views
Skip to first unread message

Anthony Petosa

unread,
Feb 4, 2022, 5:10:08 PM2/4/22
to BFO Discuss
For testing purposes, I have a very simple OWL model that imports the BFO 2.0 OWL model. Using Protege, I subclassed both "Country" and "Territory" under BFO's "Site". Lastly, I added the following object type property qualified cardinality constraint (QCC) within a subClassOf axiom on the Country OWL Class.

'located in at some time' min 1 Territory

BFO_0000170 in the subject line refers to the preceding BFO OWL object type property. When I run the Pellet reasoner I receive the error message stated in the subject line. If I remove the object type property restriction, the reasoner does not complain.

Any thoughts? The QCC is consistent with the domain & range values for 'located in at some time', each of which are defined as follows:

'independent continuant' and (not('spatial region'))

Both Country and Territory are descendants of Independent Continuant.

Chris Mungall

unread,
Feb 4, 2022, 5:16:23 PM2/4/22
to bfo-d...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "BFO Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bfo-discuss...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bfo-discuss/d5b7f427-0212-44e3-8fbe-316817ed6971n%40googlegroups.com.

Anthony Petosa

unread,
Feb 4, 2022, 5:39:07 PM2/4/22
to BFO Discuss
Thank you for the reply, Chris, and for the link to your blog article.

According to the article, my QCC does not work because it violates the OWL DL profile.

"... the basic problem arises when combining transitive properties such as part-of with cardinality constraints."

While BFO's 'located in at all times' is transitive, 'located in at some time', its parent, is not; neither does 'located in a some time' have a super property that itself is transitive. Since I did not use a QCC in the context of a transitive property and I did not create a complex subproperty (I simply reused 'located in at some time'), could there be another reason for this Pellet error? In the meanwhile, I'll have to explore more closely how a QCC combined with a transitive property violates the DL profile.

By the way, the article also mentions the HermiT reasoner will complain. I ran the HermiT reasoner (v1.4.3.456) within Protege (v5.5.0), and it did not complain.

I appreciate your feedback.

Chris Mungall

unread,
Feb 4, 2022, 5:47:16 PM2/4/22
to bfo-d...@googlegroups.com
ah, maybe it's a bug in pellet then? In fact does anyone still use pellet? Everyone used it ten years ago, it's been completely superseded AFAICT.

To get the canonical answer you can ask robot:


Michael DeBellis

unread,
Feb 4, 2022, 5:54:00 PM2/4/22
to bfo-d...@googlegroups.com
ah, maybe it's a bug in pellet then? In fact does anyone still use pellet? 

Yes, a lot of people still use Pellet. I've been using it as my default reasoner in Protege for over 4 years. If you use the SWRLTab it is the best reasoner that supports SWRL. I wouldn't rule anything out but in all the years I've used Pellet with Protege I've never experienced an error that was due to a bug in Pellet and I can't recall a single example from the Protege support email list that was due to a Pellet bug. . 

Michael

Anthony Petosa

unread,
Feb 4, 2022, 6:38:02 PM2/4/22
to BFO Discuss
I appreciate your replies, Chris & Michael.

I think I may have located the problem. 

While 'located in at some time' has no direct transitive object type property parent, its domain and range values, 'independent continuant' and (not('spatial region')), are descendants of Independent Continuant, with Independent Continuant being a subproperty of Continuant. The 'continuant part of at all times' object type property, which has domain & ranges assigned to Continuant, is itself a transitive property.

I'm guessing my QCC combines with a transitive property on account of this domain/range ancestral chain upward to Continuant, which is assigned to the domain/range values of a transitive property.

Could this be the culprit?

Michael DeBellis

unread,
Feb 4, 2022, 7:00:54 PM2/4/22
to bfo-d...@googlegroups.com
Could this be the culprit?

Can't say with any certainty but given the error message it seems like you've probably found the problem. If you post on the Protege user support list you could get feedback from some of the people at Stanford who would probably know for sure.  Also, if you try that and your ontology isn't too large or proprietary it is a good idea to include it so people can replicate the problem. 

Michael

Anthony Petosa

unread,
Feb 4, 2022, 7:14:05 PM2/4/22
to BFO Discuss
Thank you, gentlemen.

Alan Ruttenberg

unread,
Feb 4, 2022, 10:28:31 PM2/4/22
to bfo-d...@googlegroups.com
As noted you can't use a cardinality constraint on a transitive property, or on a property with a subproperty that is transitive. There are other such constraints. That section is kind of a bear to read as a whole, but the distinction is between simple and non-simple properties, and the part starting "Restriction on Simple Roles" explains what you can't do. Everything it says you can't do holds equally if for super-properties of non-simple properties.

ObjectMinCardinalty 1 is kind of an special as it means the same thing as an ObjectSomeValuesFrom expression, which is allowed. Pellet apparently rejects the axiom even though it means the same thing because technically it is outside the DL profile. Hermit apparently translates it, and so doesn't complain. Neither reasoner will work if you use min 2. Use 'located in at some time' some Territory if you want to be conformant.

Alan

Bill Duncan

unread,
Feb 5, 2022, 10:54:29 AM2/5/22
to bfo-d...@googlegroups.com
Thanks Alan! I was well aware of the restriction against cardinality constraints on transitive properties. But, I was unaware of the restriction against subproperties of transitive properties!  
So much OWL to learn ... So little time :)

Bill

Anthony Petosa

unread,
Feb 5, 2022, 11:12:05 AM2/5/22
to BFO Discuss

Thank you, Alan. You provided a solution I was about to test, which is to express separate value and cardinality constraints and see how Pellet behaves. I was thinking that one or the other would work, and you confirmed a value constraint works but a cardinality constraint does not on those object type properties for which either its sub-properties or its super-properties are transitive. Thank you for the link. I will give it a read.
Reply all
Reply to author
Forward
0 new messages