-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Circular Imports #35
Comments
Fabian has proposed a semantics of circular imports, which however is so complicated that we should not adopt it. |
Given
John Sowa has proposed replacing
with
which would require an additional semantic constraint equivalent to
As far as I can see, this would take care of the issue with circular imports. In particular, consider the case of two otherwise vacuous texts that import each other.
One interpretation assigns a value of true to both (a) and (b). The advantages I see to this approach are
|
What about keeping (cl-imports name), but equipping it with the above sketched semantics?
|
That seems like an acceptable approach to me. As mentioned by Till on the mailing list, the ability to state an equivalence between a nullary proposition and some conjunction of sentences is already included in CL. So in that case, what is needed to turn this sketch into a proposal for revision of the standard is
The interpretation of a text in a collection remains the same except that the truth-value of an importation phrase is provided directly by the interpretation. How 1.c) is accomplished in practice depends on the mechanism for "retrieving" the text associated with a name. Here are a couple of options: A. In the current CL standard, this is accomplished with the name-text pair denotation and the text() function. So 1.c) would look like B.We could make text() be a total function on the universe of reference and drop the notion of name-text pair, and modify the semantics of the named text expression. In this case, if E is a named text expression with name N and body text T, |
New proposal for ci-imports developed in the teleconference on November 28, 2012: keep cl-imports syntax, but with a new semantics: the model class of the importing text is defined as the class of all models (a) satisfying the axioms local to the importing text, and (b) are in the model class of the imported text (possibly after being restricted to the appropriate vocabulary). Put differently: a model satisfies the importing text if (a) it satisfies all the axioms local to the importing text, and (b) it is a model of the imported text. Note that this does not involve copying. The difference to the current semantics in ISO 24707 is that currently, names of cl-texts denote in the universe of discourse. The rationale for let them not denote is the "small models" argument of Ian Horrocks. More precisely, if names of cl-texts (belonging to the meta level in my opinion) denote, they will mess up the model theory. Cf. Fabian's observation that in CLIF, you can prove that at least 100 different individuals exists, just because there are 100 different ct-texts. So the permutation group of degree 6 (which I use in my research) is not a CLIF model. With this approach, it is also possible but more difficult to give a semantics to circular imports. (I would suggest to forbid ciruclar imports.) Is there some example that would differentiate the current ISO 24707 from this new proposal? I guess it must be something like (forall (x) (if (= (author x) Fabian) (cl-imports x)), meaning "all texts authored by Fabian are true". Note that this example is not possible in the current ISO 24707, because cl-imports cannot occur within a sentence. |
This new proposal fails to mention the means by which an imported text is associated with a name/identifier. Is the intention for that to be dropped from the CL standard? to keep the existing mechanism of named texts but to require these names to be excluded from the universe of discourse? to introduce some other mechanism? It is difficult to evaluate this proposal without the full details. Regarding the idea of some meta-level above CL semantics to handle importations, metadata etc, - in my view unnamed CL texts are the meta-level, with modules being the underlying level. Take for example the mentioned example of the permutation group of degree 6, I would think there are other problems with this being a CLIF model besides its importation along with 100 other texts. One point is that the standard doesn't actually define the concept of a model, and this is less trivial than one might suppose. Aside from that, if these 100 texts together use more than 6 different predicates or 6 different functions, then there must be more than 6 individuals in the universe of discourse, because of the wild-west syntax. To me, treating such a text as an ordinary named text seems like a very fragile approach to the problem, which would be solved by using a module construct (with more functionality than is currently present) because it seems to be inherently oriented towards a segregated representation. The module's universe of discourse should have a name (and does not belong to itself) and then certain axioms can be stated about it as a predicate, such as there exist exactly 6 members (1-tuples in its extension). This could be easily stated with the syntactic sugar version of the proposed numerical quantifier syntax. If the universe of discourse of the module were not required to contain all individuals of the universe of discourse of the text it is imported into except those explicitly listed in the exclusion list, then this axiom (of 6 individuals in the module's universe of discourse) could be easily satisfied. I believe that is the real problem, not the importation semantics. The problem with requiring the name of texts (and modules and their universe of discourse) to always to be out of the universe of discourse is that it eliminates flexibility for those users who do want to have the name of some texts in the universe of discourse, for the purpose of expressing "metadata" about CL texts. The use case is as follows: a document contains a named text or module and also simple statements of metadata using the name of the text as an argument. We can do this in (almost) the current CLIF, (assuming we adopt the IKL syntax for numerical quantification and resolve the ambiguous text production in a way that allows modules as phrases):
The only problem is that it is annoying to have to list all these excluded names that may not even occur inside the module, and it is not feasible to keep the exclusion list up-to-date with all names from every text we might want to import this module into. So let's fix the module syntax and semantics (Issue #25) so that it is usable instead of expecting the importation/named-text semantics to solve this problem (the permutation group example). |
My proposal is to keep the association between names an CL texts outside CL models, and treat it at the meta level. I find it dubious to force inclusion of this association, which is highly dependent of context and on the state of the web, into models. This does not mean that the names have to be exlucded from models. They can occur in models, as in your example, or they can be left out. It is the choice of the user. My point is just that the user shouldn't be forced to have them in. If you disagree, I would like to see a single example where the fact that the association between names an CL texts is part of CL models is actually used. Your example above is not such an example. An example would need to use cl-text, since cl-text is the only construct whose semantic refers to the association between names and CL texts (this association is called "text(...)" in the standard). |
I agree that a user shouldn't be forced to accept a name-text association just because it is published somewhere on the Web. That is why I have proposed, above, that we introduce the concept of an interpretation of a collection of texts, without specifying how such a collection of texts is constructed. In this way we can talk about a distributed representation of axioms in a very abstract manner. Application of this abstraction to concrete situations, such as the Web, would be outside of the scope of the CL standard. Regarding the example above, the semantics of modules and texts is in flux now, but I think there is agreement that there is a strong relationship between modules and named texts. Otherwise, how is the importation of a module defined? |
Agreed, cl-text and cl-module should be combined now, as suggested by #24. Still, your example does not make direct use of the name-textassociation. It perfectly works as well if the association is kept at the meta level. I repeat: I guess an example must be something like (forall (x) (if (= (author x) Fabian) (cl-imports x)), meaning "all texts authored by Fabian are true". Note that this example is not possible in the current ISO 24707, because cl-imports cannot occur within a sentence. |
On 1/8/13 9:28 AM, Till Mossakowski wrote:
I tried to work out the details, and I haven't been able to make this Here is the requirement for segregation: (cl:text (cl:segregate P) (P a) ) However, It does not entail The reason for that is the following:
Note that entailment is defined with respect to the "most-outside" To make segregation work we can't reuse the proposed semantics for
(This does not really work, I am just trying to illustrate the It might be possible to merge texts and modules/domain_restrictions, but Best |
More on the issue: One question that we haven't addressed are the impacts on the definition Now consider ontologies like the following /* ontology1 */ (cl:text foo (segregate Q) It seems that we need to give up the idea that the vocabulary is If we just abandon (R1), then the semantics of CL is changed. Consider /* ontology2 */ Currently, there are two possibilities: either P is a discourse name The only way that I see to keep something like (R1) is to change the However, this is pretty ugly, because logical truth would be only /* ontology3 */ Best |
I welcome your last proposal, and would let it base on the fact that a vocabulary needs to specify which names are discourse and which are non-discourse. This is in accordance with the current standard, p.13: "A dialect may require some names to be non-discourse names, which are understood not to denote entities in |
The semantics of cl-imports needs to be clarified: are circular imports allowed? If yes, what is their semantics?
The text was updated successfully, but these errors were encountered: