SD2E / opil

The Open Protocol Interface Language (OPIL) is intended as a standard language for protocol interfaces
5 stars 1 forks source link

Is owl:minCardinality correct? #147

Open jakebeal opened 3 years ago

jakebeal commented 3 years ago

@rpgoldman writes:

I don't think you want owl:minCardinality -- you want something that entails owl:minCardinality, but also implies a commitment to having at least the corresponding number of property assertions in a well-formed document. So maybe opil:minCardinality and paml:minCardinality instead, in order to designate "owl:minCardinality++"?

rpgoldman commented 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...

jakebeal commented 3 years ago

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?

rpgoldman commented 3 years ago

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.

jakebeal commented 3 years ago

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.