throbber
Archive ouverte UNIGE
`https://archive-ouverte.unige.ch
`
`Chapitre d'actes
`
`1996
`
`Accepted version
`
`Open Access
`
`This is an author manuscript post-peer-reviewing (accepted version) of the original publication. The layout of
`the published version may differ .
`
`Generating Hypertext Views on Databases
`
`Falquet, Gilles; Prince, Ian James; Guyot, Jacques
`
`How to cite
`
`FALQUET, Gilles, PRINCE, Ian James, GUYOT, Jacques. Generating Hypertext Views on Databases.
`In: Actes du 14ème Congrès INFORSID - Systèmes d’information, multimédia et systèmes à
`base de connaissance. Bordeaux (France). Toulouse : INFORSID, 1996. p. 269–284.
`
`This publication URL:
`
`https://archive-ouverte.unige.ch//unige:46602
`
`© This document is protected by copyright. Please refer to copyright holder(s) for terms of use.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 1 of 17
`
`

`

`Generating Hypertext Views on Databases
`
`Gilles Falquet, Jacques Guyot, Ian Prince
`
`C.U.I - Université de Genève, 24, Rue Général Dufour
`CH-1211 Genève, Suisse
`Tél: +41 22 705 77 70 - Fax: +41 22 320 29 27
`e-mail: {falquet, guyot, prince}@cui.unige.ch
`http://cuiwww.unige.ch/db-research/hyperviews/
`
`Resumé:
`Cet article présente un langage et un sytème de construction de vue hypertexte (hypervue)
`surune base de données. Nous étudions tout d’abord différentes manières de représenter les objets
`d’un base de données sous forme de composants d’un hypertexte: représentation directe des
`tuples, représentation d’ensembles de tuples et représentation de tuples associés. Nous montrons
`ensuite comment ces approches sont intégrées dans un langage déclaratif de définition
`d’hypervues. Ce langage permet de spécifier comment le contenu des différents types de noeuds
`ainsi que les liens hypertextes sont formés à partir du contenu de la base de données. Nous
`donnons également des indications sur la conception de la structure hypertextuelle en fonction des
`relations sémantiques représentés dans le schéma de la base de données.
`Le prototype de traducteur qui a été réalisé génère des hypervues pour le système Worldwide
`Web (W3) à partir d’une base relationnelle. Nous décrivons les principaux composants du système
`réalisé et montrons comment le processus de traduction peut rémédier à certains défauts du modèle
`W3 d’hypertexte.
`
`Mots clés: bases de données, sémantique des données, vues, hypertextes, génération
`d’hypertextes
`
`Abstract:
`This paper presents a language and a system to construct a hypertextual view (a hyperview) of
`the content of a database. We first study different approaches to map database objects to hypertext
`components: tuple level mapping, tuple sets mapping, and associated tuples mapping. Then we
`present a declarative hyperview definition language which integrates these approaches. With this
`language one can specify for each node type and each link type how to construct it from the
`database contents. We also show how the semantic relationship represented in the database schema
`can be used to design the hypertext structure.
`A prototype translator has been implemented to generate a Worldwide Web (W3) hyperview of
`a relational database, the main components of this generation system are presented. We also show
`how the translation process can overcome some shortcoming of the W3 hypertext model.
`
`Keywords: databases, database semantics, views, hypertexts, hypertext generation.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 2 of 17
`
`

`

`1. Introduction
`It is well acknowledged that accessing a database with traditional query languages, like SQL, is
`too complex for non specialist or casual users. This is particularly true when the intended answer
`requires information that is spread across several database tables (or classes). In such a situation
`the user must be able to select a correct logical access path within the database schema and to
`express this path as a query language expression. The former task may be particularly difficult
`when the database schema comprises hundreds of tables and thousands of attributes (often bearing
`misleading names).
`The generally adopted solution consists in providing a set of views or access forms to the user.
`However forms enable users to perform queries quickly and safely, they limit the user’s interaction
`with the database to a set of predefined actions. This is particularly annoying when the user needs
`information that exists somewhere in the database but none of the predefined forms has been
`devised to get it. This approach also raises problems related to information distribution over large
`heterogeneous networks. Since forms are in fact database client applications, each new user must
`obtain and run these applications on his local system.
`Database browsing or navigation tools can remedy such problems by allowing the user to
`explore the database contents with a single navigation tool.
`Several exploration tools have already been proposed for databases, in particular for object-
`oriented databases (see [SIGMOD 92] for papers on this topic) (see [Isakowitz & al] for a
`hypermedia methodology based on E-R model).
`We chose to take another perspective that consists in presenting the database content as a
`hypertext. This hypertext can be actually stored in a hypertext system or virtual, in which case,
`nodes and links are constructed on demand through database queries. Different users with different
`operating environments can then access this hypertext with a simple hypertext browsing tool,
`provided it recognizes the common hypertext markup language. In addition, the generated
`hypertext nodes can be linked to other external hypertext nodes and thus participate in a global
`hypertext.
`Our first prototype has been used to build a W3 [Berners-Lee 94] hypertext view of the Oracle
`dictionary [Bobrowski 92] which comprises more than one hundred tables.
`In the next section we present some features of the relational data model on which the hypertext
`construction is based. Note that since we use a semantic point of view, our results are also
`applicable to object-oriented models. In section 3 we analyse several ways of mapping database
`entities to hypertext components. Section 4 presents a hypertext definition language intended to
`specify how to construct hypertext nodes and links from the database contents. The
`implementation technique using W3 and Oracle is shown in section 6. Section 7 contains a
`comparison with other approaches. The conclusion discusses the benefits of hypertext generation
`techniques for W3-based hypertexts.
`
`2. Semantic Links in the Relational Model of Data
`
`2.1 Relations, Attributes and Tuples
`In the relational model of data [Codd 70] real world entities are represented by relation tuples.
`The structure of these tuples is given by relation schemes which are sets of attribute names together
`with their domain (or data type). A tuple of a relation R takes a value for each attribute of R’s
`scheme, this value must belong to the attribute’s domain.
`Relations can be either explicitly stored in the database or derived (computed) from other
`relations. In current relational database management systems stored relations are usually called
`tables and derived relations are called views. In this paper we will stay with the term relation to
`designate either a table or a view. We will also use the term tuple and attribute while these are often
`called rows and columns in commercial DBMSs.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 3 of 17
`
`

`

`Throughout the paper we will base all our examples on the Oracle database dictionary, which is
`a database comprising approximately 120 tables.
`
`2.2 Inter Relations References
`One important characteristic of the relational model is that references between tuples are based
`on attribute values, as opposed to object-oriented or hypertext models which use immutable object
`identifiers. However, relations usually possess a primary key which is composed of one or more
`attributes the values of which uniquely identify each tuple of the relation. For instance the attribute
`username
`is a primary key of
`relation U S E R S ( u s e r n a m e ,
`u s e r _ i d ,
`creation_date,...) since all users must have a different user name. Primary key values can
`be used in other relations to refer to a particular tuple of this relation. For instance, each tuple of
`the relation TABLES(table_name, owner, table_space,...) refers to a tuple of
`USERS through the value of its owner attribute. Since the same user may possess several tables,
`this attribute establishes a “many-to-one” relationship between TABLES and USERS.
`References through primary key values, called foreign keys, create many-to-one relationships.
`In order to implement many-to-many relationships between the tuple of two relations R(r-key, …)
`and S(s-key, …), the relational model forces to define an “associative” relation T(r-key, s-key, …)
`which refers to both R and S.
`Inter relation references are generally intended to implement different kinds of semantic
`relationships such as compound-component (part-of), generic-specific (is-a), or general binary
`relationships. We will see later how the hypertext generation may depend on the kind of semantic
`relationship considered.
`
`3. Strategies for Mapping Database Contents to Hypertexts Components
`Database and hypertext models are based on radically different information representation and
`processing paradigms [Conklin 87][Nanard Nanard 93]. Hence it is not possible to transform a
`database into an equivalent hypertext. However, if one focuses on information representation, not
`considering information retrieval and processing, one can use different strategies to map the
`contents of a database to hypertext components.
`
`3.1. Direct Tuple Level Mapping
`The most straightforward way to map database entities to a hypertext structure consists in
`mapping each relation tuple t to a hypertext node node(t). In this situation, (a subset of) the
`attribute values of the tuple form the content of the corresponding node. The key attributes’ values
`provide the identity of the node.
`Semantic relationships based on attribute values can give rise to links between the nodes
`corresponding to the related tuples. For instance, let t be a tuple of TABLES which has value
`“Joe” on the attribute owner and let u be the tuple of USERS such that u.username = “Joe”;
`this induces a hypertext link from the node(t) to node(u).
`If the target hypertext model does not support reverse traversal of links one must also generate a
`link from node(u) to node(t).
`This approach is simple but it raises two problems:
`•
`it may generate a large amount of nodes and links, which can result in user’s
`disorientation. For instance if user u owns 50 tables then there will be 50 links starting
`from u and leading to 50 nodes (one for each table).
`there is no way to see a set of data as a whole. For instance, to see the names of all the
`tables of user u it is necessary to navigate to each one of the 50 nodes linked to u.
`However, it may be an acceptable solution for relations with many attributes and relatively few
`tuples.
`
`•
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 4 of 17
`
`

`

`3.2. Mapping Homogeneous Sets of Tuples to Nodes
`In this approach each node is the representation of a set of tuples of a relation, nodes are
`structured as a set of items, each one of these being the representation of one selected tuple. This
`structure implies that there are now three kinds of links, namely: links between two nodes; links
`between an item and a node; and links between two items.
`In general the content of a node will be made of the tuples of a relation which satisfy a given
`predicate. For instance, the content of a node tables_of_Joe could be a representation of all
`the tuples t of relation TABLES which satisfy t.owner = “Joe”, i.e., it will show all the tables
`owned by user Joe. Figure 1 below shows the hypertext structure one can create this way to
`represent the information content of two relations TABLES and USERS and their relationship
`through the foreign key owner
`
`TABLES(tablename, owner, …)
`
`tables_of_U1
`
`USERS(username, …)
`
`U1
`
`U2
`
`U3
`
`T1
`T3
`T5
`T7
`
`tables_of_U2
`
`all_users
`
`U1
`
`U2
`
`U3
`
`tables_of_U3
`
`T2
`
`T4
`T6
`Hypertext nodes and links
`
`T1, U1
`T2, U2
`T3, U1
`T4, U3
`T5, U1
`T6, U3
`T7, U1
`
`Database relations with references
`
`.
`
`Figure 1. Mapping two connected relations to hypertext nodes and links
`
`Compared to the previous approach, this one may greatly reduce the number of nodes and links
`necessary to represent the database content. In addition, it offers a more synthetic view of data.
`For instance, a single navigation step from a user item is sufficient to reach all the user’s tables.
`Another advantage of this approach lies in the possibility to directly represent one-to-many
`relationships, even in hypertext models (like W3) which do not support multi-headed links.
`
`3.3 Mapping Sets of Related Tuples to Nodes
`In the previous section we have shown how to define nodes by selecting sets of tuples from the
`same relation. We now consider nodes which are made of tuples coming from different relations.
`In this case the selection criteria is the existence of a relationship between the different tuples
`represented in a node. In other words, grouping occurs along the inter-relation reference axis
`instead of the within-relation axis.
`This type of node construction is particularly useful to reconstruct complex entities because the
`relational data model does not provide constructs to represent complex hierarchic entities, i.e.
`entities which are composed of several other simple or complex entities. Such complex entities
`must be decomposed and stored as tuples of different relations.
`For example, a user subschema is composed of tables, views, procedures, and triggers; a table
`is itself composed of a set of columns, etc. Such a complex object is represented by
`
`-
`-
`
`a tuple u of relation USERS(username, …)
`n1 tuples of relation TABLES(table_name, owner, …) which refer to u through
`attribute owner
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 5 of 17
`
`

`

`-
`
`- m 1 tuples of relation COLUMNS(column_name, table_name, owner, …),
`each one linked to its table through attributes (table_name, owner)
`n2 tuple of relation VIEW(view_name, owner, …) which refer to u through
`attribute owner
`etc.
`-
`In this case, the foreign key references (from TABLES to USERS, from COLUMNS to TABLES,
`etc.) represent a part-of semantic link between these relations.
`It is natural to group all the tuples that represent a complex entity in a single hypertext node. The
`node’s content can be organized hierarchically to reflect the structural composition of the complex
`object. Each tuple is mapped to an (sub)item whose level corresponds to its hierarchic level within
`the complex entity.
`The main advantage of this mapping lies in its compact presentation of strongly related
`information, thus avoiding navigation operations among the different components of the complex
`entity.
`In fact it is possible to construct such hierarchic nodes for any set of interrelated relations, even
`if they do not represent a “true” complex object, i.e. when the semantic links do not bear a “part-
`of” semantic. In this case the purpose of the construction is to reduce the number of links at the
`expense of larger nodes. This aspect will be further developed in section 5.
`A similar mechanism is proposed in [Barsalou et al. 91] to view a relational database as a set of
`complex objects and in [Teuhola 93] to view object-oriented databases.
`
`4. The Hyperview Definition Language
`A hyperview specification consists of node types definitions which specify the name of the
`node type; the table or view from which the node’s content is to be drawn; the presentation of the
`content; links to other nodes. A node definition takes the following form (the complete BNF
`syntax of the language is given in appendix):
`
`node <node-name>
`d i s p l a y
`
`< f i e l d > , . . .
`selected by <attribute-list>,...
`ordered by <attribute-list>,...
`from <relation>
`
`where each <field> is either an attribute or a hyperlink and “,...” denotes the possible
`repetition of the previous symbol.
`Content of a node
`The from <relation> clause determines the relation (which can be a base relation or a
`view) from which the node’s content is constructed. The node’s content is organized as a set of
`items, each one of them is the representation of a relation tuple.
`
`4.1. Items Definition (attributes and formats)
`The display clause specifies which attributes to display and the presentation format to use.
`Each item to display is composed of a number of fields which contain presentations commands and
`functions and the name of an attribute.
`For example, let the table sys.dba_users contain the rows:
`
`username user_id created profile ...
`- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`C2DDBA 28 11-OCT-95 DEFAULT ...
`C2DUSER 29 11-OCT-95 DEFAULT ...
`CAO 19 11-OCT-95 DEFAULT ...
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 6 of 17
`
`

`

`and let users be a node type defined as follows
`
`node users
` display bold ( username ) break ,
` " User_id: " bold ( User_id ) ,
` " Created: " bold ( created ) break,
` " Profile: " bold ( profile ) ,
` " Default TS: " bold ( default_Tablespace ) ,
` " Temporary TS: " bold ( temporary_Tablespace )
`n e w p a r a
` selected by ...
` order by ...
` from "sys.dba_users"
`
`A node of type users that contains all the table’s rows will appear as shown on Figure 2.
`
`Figure 2. A node on relation USERS
`
`4.1.2 Selection Criteria and Nodes Identities
`The selected by clause specifies that each node of this type is composed of all the relation’s
`tuple which have the same value for the given list of attributes. Thus the identity of a particular
`node of type T on relation R with selection attributes A1, …, Ak is an expression of the form T[v1,
`…, vk] and its content is (a representation of) all the tuples t of R such that t.A1 = v1 and … and
`t.Ak = vk.
`For example, if node type tables_of_user is defined as
`
`node tables_of_user
`
`…s
`
`elected by owner
`from "sys.dba_tables"
`
`the node t a b l e s _ o f _ u s e r [ “ C A O ” ] contains a representation of all the tuples of
`sys.dba_tables which have owner = “CAO”, i.e. a list of all the tables of user CAO.
`It is clear that if A1, …, Ak is a key of the relation R, each node T[v1, …, vk] contains a single
`item corresponding to the unique tuple of R with values v1, …, vk for the attributes A1, …, Ak.
`This corresponds to the direct tuple level mapping of section 3.1.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 7 of 17
`
`

`

`4.2. Links
`Links to other nodes are specified through the href statement. This statement must appear
`within the content (display) definition of an item. It comprises a node reference and an anchor
`content. The anchor content will be displayed as an active text. For instance, consider the node
`type users_2 defined as
`
`node users_2
`d i s p l a y
`
`bold ( username ) break ,
`" User_id: " bold ( User_id ) ,
`" Created: " bold ( created ) break,
`" Profile: " href profiles [profile]
`( bold ( profile ) ) ,
`
`. . .
`href tables_of_user [username]
`( " [ Tables ]" ) ,
`
`
`
`. . .
`selected by ...
`order by ...
`from "sys.dba_users"
`
`An item of a users_2 node will appear as follows (anchors are underscored)
`
`Activating the link [tables] will display the node tables_of_user[“CAO”] which contains a
`description of all the tables owned by user CAO. Figure 3 shows a part of the link structure
`between user_2 and tables_of_user nodes.
`
`user_2[ ... ]
`
`CAO ... [Tables] …
`C2DUSER ... [Tables] …
`
`...
`
`tables_of_user[“CAO”]
`
`CARS ...
`WHEELS ...
`SEATS ...
`
`tables_of_user[“C2DUSER”]
`
`Figure 3. A node of type user_2 linked to tables_of_users nodes
`
`4.3. Nodes and links design
`As mentioned earlier, the semantic relationships represented in the database must also be
`somehow represented in the hypertext structure.
`
`4.3.1. Two-way foreign key references
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 8 of 17
`
`

`

`Consider two relations R(rk, s, …) and S(sk, …) where rk and sk are primary keys and s is a
`foreign key of S in R. The following node definitions define a hypertext structure that enables to
`navigate from R to S (the functional direction) and from S to R (the one-to-many direction):
`
`node S
`
`d i s p l a y
`
`sk, …
`selected by sk from S
`node R_by_s
`d i s p l a y
`
`r k ,
`href S [s], …
`selected by s from R
`
`This hypertext structure can be graphically represented as:
`s
`
`R_by_s[s]
`
`S[sk]
`
`sk
`
`4.3.2. Binary relationships
`We consider now the case of a binary many-to-many relationship between relations R(rk, …)
`and S(sk, …) implemented by a relation A(r, s, …). If we apply the above defined method for
`representing foreign key based links we end up with four nodes:
`
`node R display ..., href A_by_R [rk], ... selected by rk from R
`
`node A_by_R
`display ..., href S [s], href R [r]
`selected by rk
`
`node S display ..., href A_by_S [sk], ... selected by sk from S
`
`node A_by_S
`display ..., href R [r], href S [s]
`selected by sk
`
`The graphical representation is:
`
`R[rk]
`
`r
`
`rk
`
`r
`
`A_by_S[sk]
`
`A_by_R[rk]
`
`s
`
`sk
`s
`
`S[sk]
`
`This structure can be further improved in two ways
`1. By adding a link href A_by_S[s] in A_by_R and href A_by_R[r] in A_by_S one creates
`a “short-cut” in the circuit R fi A_by_R
`fi S fi A_by_S fi R. Figure 4 shows such a
`hypertext structure generated for the many-to-many relationship between USERS and
`ROLES, Figure 5 shows two navigation steps in this hypertext.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 9 of 17
`
`

`

`granted_to
`
`users[username]
`
`granted_to
`
`role_privs_to[granted_to]
`
`role
`username
`
`granted_to
`
`role_users[grantee]
`
`role
`
`role
`
`role
`
`role[role]
`
`Figure 4. Hypertext structure generated from a binary many-to-many relatiohship
`
`Figure 5. Navigation through a many-to-many relationship
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 10 of 17
`
`

`

`2. By defining A_by_S (resp. A_by_R) on a join view A_R = A *r=rk R to include some
`or all of R’s attributes in A_by_S. This suppresses one navigation step to get
`information about R’s entities when coming from S.
`
`5. Immediate Links
`Immediate links plays two roles: a) they enable to construct hierarchical nodes to represent
`complex entities; b) they also provide an outlining mechanism that gives information about the
`content of a linked node without having to navigate to it.
`
`5.1. Representing Complex Entities
`While a normal link specification creates an active text that refers to another node, an immediate
`link specification adds the content of the referred node (or a part of it) to the content of the node
`being specified. In other word, each item of the referring node imports the content of the node it
`refers to. In fact, an immediate link creates sub-items within each item of the referencing node. The
`content of these sub-items is determined by the “display” part of the referenced node.
`
`Example.
`Let node type users_2 be redefined as
`
`node users_2
` display
`bold ( username ) break ,
`" User_id: " bold ( user_id ) ,
`" Created: " bold ( created ) ,
`" Profile: " immediate href profile_of_user [username]
`( profile) break ,
`
`. . .
`immediate href tables_of_user [username] ( “? Tables “)
`. . .
` from "sys.dba_users"
`
`The node users_2["FALQUET"] will display as shown on Figure 6
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 11 of 17
`
`

`

`
`
`Figure 6. A node representing a complex entity
`
`Note that the normal reference is still included to allow navigation to the referenced node.
`If an immediately referenced node contains immediate references, these one will in turn generate
`sub-sub-items of the initial referring node, and so on recursively. This enables the creation of
`multi-level hierarchical nodes to represent complex entities stored in several database relations.
`
`5.2. Representing Specialized Entities
`In the relational model specialization hierarchies (or IS-A hierarchies) are often implemented by
`a set of relations having the same primary key [Smith Smith 77]. For instance, suppose that the
`specialization hierarchy Car IS-A Vehicle and Bicycle IS-A Vehicle is implemented by the three
`relations: VEHICLE(veh_no, type, … ), CAR(veh_no, motor, …), and
`BICYCLE(veh_no, frame_size, …). The following node definition is sufficient to
`represent any vehicle whatever its type.
`
`node Vehicle
`display veh_no, type,
`immediate href car [veh_no] (“ car “),
`immediate href bicycle [veh_no] (“ bicycle “)
`
`. . .
`from VEHICLE
` If the vehicle is a car the immediate link to car will include the car specific attributes of the
`vehicle found in the car node linked to this one. The link to bicycle will add nothing to the node
`since no bicycle node is linked to this vehicle. The opposite will happen for a vehicle which is a
`bicycle.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 12 of 17
`
`

`

`5.3. Outlining Linked Nodes
`The other usage of immediate referencing is to give information about the content of linked
`nodes. This feature is of particular interest for very large and distributed hypertexts, like W3,
`where navigation operations may become time consuming due to network and servers load.
`To avoid navigating to nodes which are not relevant to the user, immediate links add an outline
`of the referred nodes to the content of the referring node [Ichimura Matsushita 93]. This
`mechanism is based on the distance between the referring node and the referred one. By definition,
`a node is at distance 0 from itself and a node immediately referenced by a node at distance i is at
`distance i + 1. A visibility distance can be associated with each display field of a node type,
`indicating the maximum distance from which this field is visible through an immediate reference.
`This mechanism also ensures that the content of a node cannot become infinite since for each
`type of node there is a distance from which no fields are visible.
`
`Example
`
`node tables_of_user
` display
` (2) bold(table_name) ,
` (0) “in table space “ table_space ,
` (1) immediate href columns_of_table[owner, table_name]
` “ Columns”
`
`…s
`
`elected by owner
`from "sys.dba_tables"
`
`node columns_of_table
` display
` (2) column_name ,
` (1) data_type ,
` (0) data_length
`selected by owner, table_name
`
`In a node of type users_2 (defined in 5.1) the immediate reference to tables_of_user
`will cause the name of each table to be displayed but not its table space which is invisible at
`distance 1. The immediate reference to columns_of_table will also be visible but only the
`name of each column will be displayed since this node is at distance 2 from users_2.
`
`5.4. Logical independence
`An interesting property of immediate links is that the definition of a node depends only on the
`schema of its base relation, even if it has immediate references to other nodes. Thus, when the
`schema of a relation si modified (i.e. some attributes are added or deleted), only the nodes based
`on this relation must be adapted. Other nodes linked to theses nodes through immediate links need
`not be redefined. They will simply have a different content and appearance the next time they are
`accessed. Thus the consequences of a database schema update are automatically propagated in the
`hypertext without any global update of the hypertext structure.
`
`6. Implementation Techniques
`The implementation of this database viewing mechanism relies on two components: a node
`definition translator and a node server connected to a W3 HTTP server.
`
`6.1. Nodes Translation to Views
`The node definition translator takes as input a set of node types definitions and produces for
`each node type T a database view of the form
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 13 of 17
`
`

`

`create view html_view_T as
`select <display> n_display ,
` <selected by> n_select ,
`<ordered by> n_ordre
`
`from <table>
`
`The translation of the “display” clause of the node specification produces the <display> part of
`the view which is a concatenation of attribute names and HTML tags,
`The <selected by> and <ordered by> parts are the concatenation of the selection and ordering
`attributes respectively.
`For instance the specification
`
`node users
` display bold(username) break, “ user_id: “ user_id
` selected by user_group
` ordered by username
`from sys.dba_tables
`
`is translated into
`
`create view http_users as
`select '<b>' || username || '</b>' || ' user_id: ' || user_id
`n_display ,
` user_group n_select ,
` username n_order
`from sys.dba_tables
`
`( Note: “||” is the concatenation operator)
`
`Hyperlinks specified in the form “href node_type [expression ] (anchor_text)” are translated
`into the text of an HTML anchor:
`<A HREF=”http://server/hyperview.cgi? n=node_type&i=expression” > anchor_text </A>.
`This is a reference to a server script with node_type and expression as parameters.
`When display fields have different viewing distances it is necessary to generate a view for each
`distance from 0 to the largest specified distance. Since only the definition of a view, not its
`content, is stored this does not consume storage space.
`
`6.2. The Node Server
`Our design strategy was to let the database server support all the retrieval and formatting work
`and to have the node server collect the formatted query results and transmit them to the client. The
`node server is a CGI (Common Gateway Interface) program connected to a standard W3 HTTP
`server on one side and to an Oracle database server on the other side.
`The server script takes requests of the form n=node&i=value, transforms them to the SQL
`query “select n_display from html_view_node where n_select = value”, sends this query to the
`database server, collects the results, and sends the results back to the client. The script does no
`HTML formatting since everything is done by the SQL processor when executing the query
`corresponding to the view.
`In the current version of the system the server is also responsible for the expansion of
`immediate references. If it detects immediate references within the query results it sends the
`corresponding queries to the database server and includes the result into the main query result
`before sending it to the client. This process is similar to macro expansion in programming
`languages. Depending on the depth of the expansion, which corresponds to the distance from the
`initial node, it chooses which view to query, when the maximal depth has been reached it stops the
`expansion process.
`
`Meta Platforms, Inc.
`Meta Platforms, Inc. v. Angel Technologies Group LLC
`IPR2023-00059
`Exhibit 1042 - Page 14 of 17
`
`

`

`URL
`
`HREF=”hyperview.cgi?...”
`
`<HTML> ...
`...
`<B> Joe </B>
`...
`
`generated node content
`
`node definitions
`
`translation
`
`select ...
`
`HTTP server
`
`node server
`(hyperview.cgi)
`
`views
`
`database
`
`Figure 7. The node generation and retrieval process
`
`7. Comparison with other Database to Hypertext Translators
`The Decoux [Decoux] and WOW [WOW] gateways illustrate two possibilities to interface a
`database management system, namely, Oracle and W3.
`With the Decoux CGI gateway a SQL query is directly embedded in a “page”. The HTTP server
`redirects the “page” to the Decoux CGI which then sends the necessary query to Oracle. Oracle
`returns the query result to Decoux, which then inserts the result into the original “page” which is
`returned to the client as an HTML page via the HTTP server. In this case all the formatting is
`executed by the CGI thereby being independent of any particular DBMS. The Zelig system [Varela
`Hayes 94] takes a similar approach, it defines special tags to include queries in HTML documents.
`Web-Oracle-Web (WOW) is a utility intended to develop CGI gateways for Web-servers with
`PL/SQL in an Oracle7 database. Wow procedures are executed within an Oracle database. Wow
`contains: a CGI program called wowstub; a PL/SQL package called wow; PL/SQL optional
`packages called HTP and HTF, these encapsulate HTML formatting; a standalone PL/SQL
`compiler with CGI

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket