This paper emphasizes the possibility to associate or link different components of an application, particularly the way in which links are created. We discuss next the automatic link generation and hand-made link creation.
The designer must consider the model of the application meant to be extended in order to extract node types mapping application's component types. If the application model was designed with a method with explicit use of relationships like the Object Modeling Technique (OMT) [Rumbaugh91], link types can also be extracted from the model, relating different node types. Another way is defining rules or predicates that dynamically create links [Bieber95].
In [Rossi94, Carvalho95] a framework for extending applications with hypermedia functionality in an object-oriented environment is presented. Using this framework, nodes are associated with zero, one or more objects, and links are obtained from acquaintance or aggregation relationships. The aspects of objects serve as the atomic elements to be associated with each node, even if they return data or perform some action. Moreover, classes serve as starting points for the definition of node types, and automatic generation of nodes and links is implemented with the notification mechanism provided by the Smalltalk language. This mechanism is applied to make node types observe or depend on classes, and each time a new instance of a class is created, the class automatically notifies it to the dependent node type. Consequently, the object-oriented paradigm allows a transparent implementation of hypermedia extensions.
In data-based and hybrid applications, data items or components can be easily extracted and associated with nodes and links. A confusion may arise when building an extension for behaviour-based applications, where navigational items are more difficult to find. Even the concept of node is rather lost because the application is focused on the computations performed by its tools. For example in Smalltalk, a browser appears as a group of related list-boxes, where data items are selected in turn and actions are dispatched over the selected items. In this case, anchors may be created over each item in a list and they must appear on demand by way of a switch or menu option in order to be activated. Consequently, automatic generation of anchors and links is also feasible in this type of applications.
Summarizing this section, automatic link generation utilizes the semantic of node and link types, supporting the facility of creation. Various researchers have recognized the importance of typed nodes and links for communicating goals more effectively [Haake94]. Thus, application in which component types or classes are easily recognized (even semantic networks) can benefit remarkably from this approach. Furthermore, consistency and constraint checking can be addressed by just creating only the pre-defined relations to be navigated, either if they relate typed components or rise from some rule.
In [Oinas-Kukkonen95a] a general approach for improving software systems through hand-made links is described, and in [Oinas-Kukkonen95b] this approach is applied to modeling CASE tools. When hypermedia functionality is applied in CASE, it results in the integration of informal and formal specification techniques. Hand-made link creation is also essential for each user to relate his/her own position to the ones of other users in the context of co-operative work. Hand-made links provide most support for complex systems, such as behaviour-based or hybrid applications, but do not give much support for data-based applications as defined above. Thus, applications with a lot of analytical information and heavy end-user emphasis may benefit greatly from user-created links.
Applications in which component and relationship types are easily recognized can benefit remarkably from automatic link generation because in the process of definition of hypermedia components, it facilitates the extension and supports the semantic of node and link types. On the other hand, users often prefer to organize the knowledge in a more flexible and informal way, without being restricted to pre-defined types of nodes and links. Thus, applications with a lot of analytical information and heavy end-user emphasis may benefit greatly from user-created links. Still, we believe that both ways for link creation are needed and useful, and various applications domains may benefit from both of them. Consider a CASE tool as an example application. Automatic links may be generated between the documents of each pre-defined phase of a certain methodology. Moreover, each component inside a document can be traced from the requirements over the whole life-cycle [Alvarez95]. Hand-made links support annotation capability, design rationale discussions and free association of components by authors and readers.
[Arents94] Hans Arents and Walter Bogaerts. "Link Services Badges: a Mechanism for Announcing Available Hypermedia Functionality". The First Workshop on Incorporating Hypertext Functionality into Software Systems (Edinburgh, Scotland, September 18th, 1994). New Jersey Institute of Technology: Technical Report #95-10.
[Ashman94] Helen Ashman and Janet Verbyla. "Retrofitted Hypermedia for Third- Party Applications". The First Workshop on Incorporating Hypertext Functionality into Software Systems (Edinburgh, Scotland, September 18th, 1994). New Jersey Institute of Technology: Technical Report #95-10.
[Bieber94] Michael Bieber and Charles Kacmar. "Hypertext Support for Computational Applications". The First Workshop on Incorporating Hypertext Functionality into Software Systems, (Edinburgh, Scotland, September 18th, 1994). New Jersey Institute of Technology: Technical Report #95-10.
[Bieber95] Michael Bieber and Charles Kacmar. "Designing Hypertext Support for Computational Applications". Communications of the ACM, Vol. 38, No. 8. August 1995, pp. 99-107.
[Carvalho95] Sergio Carvalho, Gustavo Rossi and Alejandra Garrido. "Design Patterns in an Object-Oriented Framework for Hypermedia". Proceedings of SCCC’95: Conference of the Chilean Society of Computer Science, Arica, Chile, November 1995.
[Garrido96] Alejandra Garrido and Gustavo Rossi. "A Framework for Extending Object-Oriented Applications with Hypermedia Functionality". Forthcoming.
[Haake94] Joerg Haake, Cristine Neuwirth, Norbert Streitz. "Coexistence and Transformation of Informal and Formal Structures: Requirements for More Flexible Hypermedia Systems". Proceedings of ECHT'94: ACM European Conference on Hypermedia Technology, Edinburgh, Scotland, September 1994, pp. 1-12.
[HTF1] New Jersey Institute of Technology: The First Workshop on Incorporating Hypertext Functionality into Software Systems (Edinburgh, Scotland, September 18, 1994). New Jersey Institute of Technology: Technical Report #95-10.
[Oinas-Kukkonen94] Harri Oinas-Kukkonen. "Hypertext Functionality Approach Defined". The First Workshop on Incorporating Hypertext Functionality into Software Systems (Edinburgh, Scotland, September 18th, 1994). New Jersey Institute of Technology: Technical Report #95-10.
[Oinas-Kukkonen95a] Harri Oinas-Kukkonen. "Developing Hypermedia Systems - The Functionality Approach". In Data Management Systems, IEEE Computer Society Press, Los Alamitos, CA, USA, pp. 2-8.
[Oinas-Kukkonen95b] Harri Oinas-Kukkonen. "Linking Ability - a Model Linking Tool for MetaEdit+ Environment". University of Oulu, Department of Information Processing Science, Working Paper Series B 39. November 1995, 16 pages.
[Rossi94] Gustavo Rossi, Alejandra Garrido and Analía Amandi. "Extending Object- Oriented Applications with Hypermedia Functionality". The First Workshop on Incorporating Hypertext Functionality into Software Systems, (Edinburgh, Scotland, September 18th, 1994). New Jersey Institute of Technology: Technical Report #95-10.
[Rumbaugh91] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy and William Lorensen. "Object-Oriented Modeling and Design". Prentice Hall, 1991.