BFO-ontology/BFO

BFO DL-Query Oddities noticed by Amanda Hicks

Opened this issue · 3 comments

From alanruttenberg@gmail.com on March 01, 2013 16:17:10

Amanda Hicks, UAMS, aellenhicks@gmail.com

I have noticed that there are some unsound results for DL queries in BFO. In short, some of the queries of the form R only x produce strange subclasses. I first noticed this when a query on one of our ontologies (Apollo-sv) produced Acquired Immunodeficiency Syndrome as a descendent of simulates only continuant AND simulates only occurrent. I think I have traced this oddity back to BFO.

Below is a set of notes I took on the queries that I made in case they're helpful. I'm not sure where the problem lies though, but if you have any questions about these queries, let me know. And if you make any headway figuring out where the problem is, I would be really interested in hearing about it!


In each of the ontologies below I created a dummy relation R and restricted the domains or ranges in various ways. There are some unsound subclass relations that result in some queires of the form R only x. They do not result when some is used.

BFO 1.1 http://bfo.googlecode.com/svn/releases/1.1/bfo.owl and

BFO 1.1.1 http://bfo.googlecode.com/svn/releases/1.1.1/bfo.owl Relations with a domain on the branch of continuants generate odd DL query results when the query is of the form R only x.

The general pattern appears to be that R only x subsumes the compliment class of the domain of R for all x. However, I have not tried all combinations.

Here are some sample queries:

Domain: continuant
Query: R only continuant
Subclass: occurrent

Query: R only dependent_continuant
Subclass: occurrent

Query: R only occurrent
Subclass: occurrent

Based on similar queries it is probably the case that when the domain of R is a continuant, R only x always yields occurrent as a subclass.

Domain: dependent_continuant
Query: R only continuant
Subclass: independent_continuant, occurrent, spatial_region

Based on similar queries it is probably the case that when the domain of R is a dependent_continuant, R only x always yields these subclasses.

Domain: generically_dependent_continuant
Query: R only continuant
Subclass: independent_continuant, occurrent, spatial_region, specifically_dependent_continuant

Based on similar queries it is probably the case that when the domain of R is a generically_dependent_continuant, R only x always yields these subclasses.

Domain: specifically_dependent_continuant
Query: R only continuant
Subclass: independent_continuant, occurrent, spatial_region, generically_dependent_continuant

Based on similar queries it is probably the case that when the domain of R is a specificially_dependent_continuant, R only x always yields these subclasses.

Domain: independent_continuant
Query: R only continuant
Subclass: dependent_continuant, occurrent, spatial_region

Based on similar queries it is probably the case that when the domain of R is a specificially_dependent_continuant, R only x always yields these subclasses.

Ruttenberg BFO 2 http://bfo.googlecode.com/svn/releases/owl-ruttenberg-2010-05-25/ruttenberg-bfo2.owl Here are some sample queries:

Domain: continuant
Query: R only continuant
Subclass: none

Query: R only dependent_continuant
Subclass: none

Query: R only occurrent
Subclass: none

Based on similar queries it is probably the case that when the domain of R is a continuant, there is no problem.

Domain: dependent_continuant
Query: R only continuant
Subclass: none

Based on similar queries it is probably the case that when the domain of R is a dependent_continuant, there is no problem.

Domain: generically_dependent_continuant
Query: R only continuant
Subclass: none

Domain: generically_dependent_continuant
Range: independent continuant
Query: R only continuant
Subclass: entity

Domain: n/a
Range: independent continuant
Query: R only continuant
Subclass: entity

Domain: n/a
Range: occurrent
Query: R only continuant
Subclass: none

Domain: n/a
Range: dependent continuant
Query: R only continuant
Subclass: none

Domain: n/a
Range: material entity
Query: R only continuant
Subclass: none

Query: ‘g depends on’ only continuant
Subclass: entity

Query: ‘is concretization of’ only continuant
Subclass: entity

Query: concretizes only continuant
Subclass: entity

Based on similar queries it is probably the case that something funny is happening on the continuant branch.

BFO 2
2012-11-15-bugfix http://bfo.googlecode.com/svn/releases/2012-11-15-bugfix/owl-group/bfo.owl There are a multitude of classes that are subclasses nothing. In addition, it seems that BFO 2 has the same problem as BFO 1.1 and BFO 1.1.1

The general pattern appears to be that R only x subsumes the compliment class of the domain of R for all x. However, I have not tried all combinations.

Here are some sample queries:

Domain: continuant
Query: R only continuant
Subclass: occurrent

Query: R only generically-dependent_continuant
Subclass: occurrent

Query: R only occurrent
Subclass: occurrent

Based on similar queries it is probably the case that when the domain of R is a continuant, R only x always yields occurrent as a subclass.

Domain: generically_dependent_continuant
Query: R only continuant
Subclass: independent_continuant, occurrent, specifically_dependent_continuant

Based on similar queries it is probably the case that when the domain of R is a generically_dependent_continuant, R only x always yields these subclasses.

Domain: specifically_dependent_continuant
Query: R only continuant
Subclass: independent_continuant, occurrent, generically_dependent_continuant

Based on similar queries it is probably the case that when the domain of R is a specificially_dependent_continuant, R only x always yields these subclasses.

Domain: independent_continuant
Query: R only continuant
Subclass: dependent_continuant, occurrent, generically dependent continuant

Based on similar queries it is probably the case that when the domain of R is a specificially_dependent_continuant, R only x always yields these subclasses.

Original issue: http://code.google.com/p/bfo/issues/detail?id=153

From alanruttenberg@gmail.com on March 01, 2013 13:18:07

We shouldn't bother with the ruttenberg-bfo2 ones, since that isn't in the line of development. So priority: BFO2, BFO1 as time permits

From steschu@gmail.com on March 01, 2013 13:45:18

The expression

simulates only continuant AND simulates only occurrent (1)

prevents that anything is in the range of simulates, because continunant and occurrent are disjoint

This expression is equal to

simulates only (continuant and occurrent) (2)

and because the intersection (continuant and occurrent) is equal to nothing

simulates only (Nothing) (3)

which can be syntactically be transformed into

not (simulates some Thing) (4)

Does this explain the inference?

To your more basic example:

Domain: continuant (5)
Query: R only continuant (6)
Subclass: occurrent (7)

This can be explained as following:

R: domain continuant (5)

is in DL by definition equivalent to the axiom

R some Thing subclassOf Continuant (8)

R only Continuant (6)

can be transformed into

Not (R some (Not Continuant)) (9)

which implies

Not (R some Thing) (10)

because every satisfiable expression implies Thing

As R some Thing is a subclass of continuant (8) then (10) cannot be a subclass of continuant

It is eqivalent to

Entity and (not continuant) (11)

which subsumes occurrent (7)

q.e.d.

From cmung...@gmail.com on March 09, 2013 14:22:27

I suggest closing this item. There is no bug here in any version of BFO. This is how we expect "only" restrictions in OWL to work.