Inheritance hierarchy mechanism in prolog

Author(s):  
Kiyoshi Akama
1994 ◽  
Vol 9 (1) ◽  
pp. 21-55
Author(s):  
Peter W. Eklund

AbstractThe inheritance problem can be simply stated: for any instantiation of an inheritance network, say a specific hierarchy Γ, find a conclusion set for Γ. In other words, find out what is logically entailed by Γ. This can be done in two ways: either by defining a deductive or proof theoretic definition to determine what paths are entailed by a network; or by translating the individual links in the network to a more general nonmonotonic logic and using its model and proof theory to generate entailments that correspond to what one would expect from “viewing” the inheritance hierarchy. Two approaches to a solution to the inheritance problem structure this paper. The first is widely known as the “path-based” or “proof theoretic”, and the second, the “Model-based” or “model theoretic”. The two approaches result in both a different interpretation of default links as well as a variation in the entailment strategy for a solution to teh inheritance problem. In either case, the entailments produced need some intuitive interpretation, which can be either credulous or skeptical. The semantics of both skeptical and credulous inheritance reasoners are examined.


2004 ◽  
Vol 12 (1) ◽  
pp. 45-55 ◽  
Author(s):  
Viktor K. Decyk ◽  
Charles D. Norton

This paper discusses a simplified technique for software emulation of inheritance and run-time polymorphism in Fortran95. This technique involves retaining the same type throughout an inheritance hierarchy, so that only functions which are modified in a derived class need to be implemented.


Author(s):  
E. NASSERI ◽  
S. COUNSELL

In this paper, we present an empirical study to investigate whether class movement and re-location within inheritance hierarchy can be predicted based on size, coupling and cohesion for four Java open-source systems. Our results showed that class movement may not be predicted based on coupling and cohesion, and while class size was found to be a factor that may help predict class movement, it does not per se predict class movement within an inheritance hierarchy. We found a significantly higher odds ratio for larger classes to be moved within an inheritance hierarchy than that of smaller classes, suggesting that, counter-intuitively, larger classes tend to be more susceptible to movement than smaller classes. We also found that in the four systems, while classes with high coupling, low cohesion and larger size tended to be moved within their respective inheritance hierarchy, classes with high coupling, low cohesion and relatively smaller size tended to be candidate classes for deletion. Finally, while we found that class coupling and size tended to rise as the systems evolved we found no statistical support for class cohesion to decline. Directed towards developers and project managers, the message that the research conveys is that excessive growth in class size is at the root of a class' deterioration in terms of movement; developmental controls should be exercised to avoid such growth.


2020 ◽  
Author(s):  
Y Wang ◽  
H Zhang ◽  
BCDS Oliveira ◽  
Marco Servetto

© Yanlin Wang, Haoyuan Zhang, Bruno C. d. S. Oliveira, and Marco Servetto. Multiple inheritance is a valuable feature for Object-Oriented Programming. However, it is also tricky to get right, as illustrated by the extensive literature on the topic. A key issue is the ambiguity arising from inheriting multiple parents, which can have conflicting methods. Numerous existing work provides solutions for conflicts which arise from diamond inheritance: i.e. conflicts that arise from implementations sharing a common ancestor. However, most mechanisms are inadequate to deal with unintentional method conflicts: conflicts which arise from two unrelated methods that happen to share the same name and signature. This paper presents a new model called Featherweight Hierarchical Java (FHJ) that deals with unintentional method conflicts. In our new model, which is partly inspired by C++, conflicting methods arising from unrelated methods can coexist in the same class, and hierarchical dispatching supports unambiguous lookups in the presence of such conflicting methods. To avoid ambiguity, hierarchical information is employed in method dispatching, which uses a combination of static and dynamic type information to choose the implementation of a method at run-time. Furthermore, unlike all existing inheritance models, our model supports hierarchical method overriding: that is, methods can be independently overridden along the multiple inheritance hierarchy. We give illustrative examples of our language and features and formalize FHJ as a minimal Featherweight-Java style calculus.


Author(s):  
Chan Chung

One of the controversial issues in English stylistic inversion (SI) construction (e.g., Into the room walked a woman) is the functional status of preverbal PP and postverbal NP. Based on the distributional parallels among the PP, NP, ordinary subject and topic, this paper proposes that the PP in SI has a dual function as a subject and topic, while the NP also has some subject properties that the PP does not have. These mixed functional properties of the PP and the 'double' subject properties of SI are analyzed in the theory of HPSG, especially with the versions recently developed by Sag 1997, Manning and Sag 1999 and Ginzburg and Sag 2001, which posit the notions of the multiple type inheritance hierarchy and dissociation between the argument and valence structures. This analysis claims that the SI construction needs to simultaneously satisfy two general, independent constraints, head-subject-phrase and head-filler-phrase, as well as the construction specific lexeme-level constraint. This view suggests that the English SI construction is an instance of peripheral phenomena whose construction specific constraints are inherited from more general core constraints.


Sign in / Sign up

Export Citation Format

Share Document