The data model presented in this paper is capable of capturing the facts described above, in part by using properties in labels. Labels are the most appropriate locations for properties since nodes are completely described by the paths that lead to them. For instance, while the &Willis node in Figure 2 has a meaningful internal name, &Willis, this name is of no importance, and the node may just as easily be called &foo. It is only known that &Willis stars in a movie because there exists an incoming edge labeled stars, which in turn is reached after traversing a movie edge. Other descriptions of &Willis, say as a father or as a person, would only be available as labels along other paths to the node (not shown in the figure).
The data model is extensible, in that any properties may be used. Below, we discuss a partial list of such properties. None of them are mandatory. Indeed, for most labels, one or more properties may be missing.
name: The name is a text description. The domain for names is the set of finite-length strings over some alphabet (e.g., Unicode characters). In general, the value of this property is a set of names. For simplicity, in this paper our examples only use a single name.
security: Some data has security restrictions, which are intended to indicate that only qualifying users are allowed access to the data. The essential ingredient to supporting this kind of security is to provide a method to restrict access to edges in queries. We use required properties for this purpose, as will be discussed further in Section 3.2.2. This paper assumes that security is controlled through Netscape-like certificates. So a more descriptive property name would be security.netscape.read, but for brevity we have shortened it. Several protocols exist for obtaining and managing these certificates. Once obtained, a certificate or combination of certificates permits access to various services and documents. For clarity, we render a certificate in plain text rather than in its encrypted form. The security is given as a formula built of individual certificates, AND, and OR. For instance a security of over 18 AND subscriber would mean that a user needs both certificates to access a service; and a security of over 18 OR subscriber would mean that either certificate alone would suffice. This is only one possible security property; the extensible data model can support others.
transaction time: The transaction time is the time when the edge is current in the database. It is called transaction time since it is the time interval between the time of the transaction that led to the edge and the time of the transaction that deleted or updated the edge . Edges that are current have a special transaction-time end value, until changed, which indicates that the edge is current and will remain so until it is changed (deleted or updated). The special role of transaction time in database modifications is elaborated in Section 3.4.
valid time: The valid time of a database fact indicates when that fact is true in the modeled reality . In our context, the valid-time property thus indicates when that edge reflects the real world. As for transaction time, valid-time timestamps are closed intervals.
price: When data is spread over a network, accessing some data may have substantially greater cost than other data, e.g., in terms of size, time, or money. The price property reflects these differing costs in obtaining data. Multiple price properties can comfortably coexist, but we simply assume that the price is a U.S. dollar amount.
quality: Information on the web arises from many sources, some of which are far more credible than others. For instance, one would commonly rate information from the CNN server as more credible than information from a user's personal home page. The quality property records the quality of the source of the information. We will assume that the quality is an intuitive ranking from low to high.
The above list only covers properties used in the movie database and does not exclude other properties such as language, Dublin Core tags, or URL space.