Information Technology Reference
In-Depth Information
slot types from a small set of common slot types (string, integer, real, etc.).
Additionally, automatic data conversion is implemented between many combi-
nations of common slot types. As a result, selectiveness of slot types is usually
too low for helping users to avoid misconnections of slots (static type checking
in statically typed programming languages helps us in finding some errors but
it is still far from eliminating all errors).
As a consequence, if we want to introduce a mechanism which helps users in
reducing miscombination and misconnection of webbles, it has to be application
specific. For each application, we need to “plug-in” an additional type system
of webbles and slots specific for the application. For this purpose, we can use
user
annotation of webbles. RDF mapping of webble annotations enable us to
define custom type systems by using RDF schema (RDFS) or more advanced
RDF vocabularies like OWL. Then we can annotate types of webbles and slots
used in applications.
By using the example illustrated in figure 2, suppose a user intends to combine
the image webble
wi
only with child webbles which describe metadata. In this
case, the user can introduce a custom type system of webbles, then declare
webbles by using this type system and check whether a webble can combine
with another.
Firstly, the custom type system has to be declared as a set of RDF triples.
-
DublinCoreWebble rdfs:subclassOf wb:Webble
-
DublinCoreWebble rdfs:subclassOf MetadataWebble
-
CIDOCWebble rdfs:subclassOf MetadataWebble
-
...
Then, the type of webbles acceptable as children by the image webble
wi
has to
be declared as part of
wi
's annotation. In this example, the acceptable type is
declared by using
wb:acceptsAsChild
which is a term of webble vocabulary:
-
An(wi) =
{
..., (wb:acceptsAsChild, MetadataWebble)
}
Finally, we can check whether a webble can be combined with
wi
or not by
evaluating the following rule.
x wb:acceptsAsChild t
∧
y rdfs:subclassOf t
y
can be combined with
x
as a child
In the same manner, we can also restrict possible combinations of slots to connect
by using annotations and rules. For instance, both image webble and Dublin
Core webble have
url
slot whose type is TextSlot. TextSlots can accept texts
in general as values. However,
url
slot of image webble has a URL of an image
as its value, and
url
slot of Dublin Core webble has a URL of a resource to
annotate in general as its value. We can declare such detailed information of slot
value domains as annotations.
-
An(wi:#url) =
{
..., (wb:valueDomain, vra:Image)
}
-
An(wm:#url) =
{
..., (wb:valueDomain, rdfs:Resource)
}