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 [19]. 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 [19]. 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.