• No results found

World Wide Web Technologies

2.5.1

URIs

Uniform Resource Identifiers, names for web-based resources can be split into two categories: URLs and URNs.

• URL

A Uniform Resource Locator is the only standard existing today for identi- fying information resources on the Internet. The URL is an abstract, human readable address to the location where a specific resource can be found, specifying the protocol with which to retrieve the resource. URLs invari- ably become unstable references to a resource. URLs can also be accessible through different protocols, part of the URL, which can cause headaches and confusion for the casual web user.

• URN

The Uniform Resource Name is an attempt to solve the problems of URLs, especially in terms of longevity. A URN is a non-human readable string that use namespaces to identify how the URN should be handled. There are numerous registered URN namespaces, however, it is possible to create URN namespaces for the purpose of an application or system where URI preservation was important.

2.5.2

Description Frameworks

2.5.2.1 Resource Description Framework

RDF [Klyne and Carroll (2004)] provides a way to describe relations between WWW resources as a graph where the arcs are represented by XML Qualified Names (QNames) [Bray et al.(1999)], an alias for a URI and nodes are represented by QNames, local names, blank nodes and (typed) literals (see Figure 2.6). RDF records these relationships as (subject, predicate, object) triples (see Figure 2.7). The RDF recommendation defines how we may merge a set of graphs into one, while the formal semantics [Hayes(2004)] defines the meaning of triples and basic entailments.

Figure 2.6: An RDF Graph

Resources in RDF are uniquely identified by URIs (see Section2.5.1). The subject and predicate of a triple must be a URI, whereas the object can be either a typed literal (XML Datatypes) [Biron and Malhotra (2004)] or a URI. There are some who argue that literals as subjects should be allowed [Carroll et al.(2005)], however, due to constraints made in the RDF/XML concrete syntax, literals as subjects are not permitted.

RDF triples form binary relationships in a graph which makes RDF semi-structured. New binary relations can be added at will without restrictions. As we shall see in Section2.5.3, ontologies give frameworks like RDF a structure based on formal logics.

Figure 2.7: An RDF Triple

2.5.2.2 Topic Maps

Topic Mapsis an ISO standard75for describing WWW resources, similar to RDF76.

While Topic Maps appear to be in direct competition with RDF, it does support ontology building, using OWL as its ontology language of choice.

75http://www.topicmaps.org/xtm/1.0/#ref iso13250. 76http://www.topicmaps.org/.

2.5.3

Ontologies

An ontology is “a specification of a conceptualisation” [Gruber (1993); Noy and McGuinness (2001)]. Ontologies are useful to us because they explicitly define re- lationships orroles between abstract concepts. In DL, ontologies are referred to as vocabularies orTboxes (see Section2.4.1.2). Instances (the Abox, Section2.4.1.3) of a given vocabulary can be supplemented by inferencing: the creation of new relations by implicit relationships defined by a rule set.

2.5.3.1 RDFS

RDF Schema (RDFS) adds basic structure to RDF and the beginnings of an ontology language. It allows URIs to be labelled so we can give them human readable interpretations. RDFS adds the following to RDF:

• Class/SubClass relationships • Instances

• Properties (relations) • Multiple inheritance

It is important to note that RDFS is meant as an ontology language for use in logical reasoning; unlike XML Schema it is not meant for validation.

Class/SubClass declaration Class and subclass declarations allow basic con- cept taxonomies to be developed. Class declarations represent concepts that can be formed into controlled vocabularies.

Instances An instance is a particular realisation of a class, similar to an in- dividual in DL. Class instances can be checked for consistency against an RDFS ontology and classified against the class hierarchy.

Properties (relations) Properties (roles in DL) form the basis for relationships between classes in an ontology. Propertiesmay be restricted by declaring a domain and range. The domain specifies which classes have a particular property; the range specifies the kinds of values ( classes, datatypes, etc.) a property can have. RDFS supports only simple properties and as such does not support datatypes (see Section2.4.1.5).

Multiple Inheritance Multiple inheritance is a well known feature of ob- ject orientated programming languages. While some well known programming languages such as JavaTM forbid multiple inheritance, knowledge representation languages like RDFS do not. RDFS permits multiple inheritance for both classes and properties.

2.5.3.2 OWL

OWL builds upon RDFS and expands the vocabulary of possible constructs. OWL provides sub-languages with reduced expressivity and computational complexity. Ontologies that import an RDFS ontology fall within OWL Full. Two smaller languages exist: OWL DL and OWL Lite.

OWL Full’s rich expressiveness means that it is computationally expensive; it is not decidable. As a result, OWL Full tools are difficult to build.

2.5.3.3 OWL DL

OWL DL, based on Description Logics and equivalent to SHION(D), adds nu- merous restrictions on OWL constructors including classes and properties. The reduction in expressivity means OWL DL is decidable.

OWL DL includes class restrictions so that, for example, a class cannot be an instance of another class; metaclasses are therefore forbidden. Property constructs such as, FunctionalProperty and InverseFunctionalProperty cannot be used with datatypes, they can only use used with the ObjectProperty construct.

2.5.3.4 OWL Lite

OWL Lite inherits all the restrictions of OWL DL and introduces its own. While OWL Lite is the least expressive sublanguage of OWL, it is the most tractable and several Semantic Web toolkits support it, for example, Jena, Pellet, and FaCT. In addition to OWL DL restrictions, OWL Lite forbids owl:minCardinality and owl:maxCardinality while owl:cardinality may only be 0 or 1. owl:hasValue, owl: disjointWith, owl:oneOf, owl:complementOf and owl:unionOf are all forbidden.