Open jakebeal opened 3 years ago
E.g. it would make perfect sense in OWL to say that a light truck is a vehicle that has between 4 and 6 wheels and a weight of less than 4 tons. That wouldn't be a commitment to have a record in your knowledge base for each wheel of every truck: it has only existential force. It's a logical assertion (forall (x) x is a light truck iff x is a vehicle, 4 <= |wheels(x)| <= 6, weight(x) < 4 tons
), not a statement about the facts you must have in a valid database...
And don't get me started on the fact that my example expression correctly is a logical equivalence, rather than just an implication...
Let me see if I understand the problem.
If I say: "here is a light truck and here are statements about three wheels", then that's valid by OWL terms because there might be a statement about a fourth wheel floating around out there somewhere?
If I add a closure assumption, however, then that would become "here is a light truck and here are statements about three wheels and no statement about a fourth wheel exists." and would then be invalid.
Thus, to make this meaningfully enforceable, we need to add closure assumptions?
Yes, that's right. Again, I'm not sure how you do that without a notion of document, because there's no notion of when a set of OWL assertions is "done."
One form of closure assumption would be to directly assert a cardinality for an instance.
Again, though, this doesn't necessarily do what you want, because cardinality assertions have only existential force. To return to my earlier example, I could add an assertion that my putative light truck has exactly three wheels without saying anything about any specific wheels. But it's exactly those specific statements that you want to control in OPIL and PAML: you are not concerned with existentials, you want to enforce constraints on documents.
This is a reason I have long disliked OWL: it was designed to specify the meaning of data structures, but it is everywhere being used to specify the form of data structures. This is not something it does well.
If you want to say that "my data structure has a field which specifies the growth medium, and that growth medium is encoded as a string that in this way aligns with the entities in SynBioHub," then OWL is your tool of choice. If you want to specify the structure and contents of a data structure: not so much.
OWL is a subset of predicate calculus: not a data model. It has a semantic model in the formal, logical sense, but I am pretty sure it is not the semantic model you are looking for.
Let's figure out the resolution for the #146, then and I suspect that will point us in the direction to go for resolving this issue.
@rpgoldman writes: