Archive for the 'Software Development' Category

Semantic Web Technologies

The Technologies

The third common use of the term Semantic Web is to identify a set of technologies, tools and standards which form the basic building blocks of a system that could support the vision of a Web imbued with meaning. The Semantic Web has been developing a layered architecture, which is often represented using a diagram first proposed by Tim Berners-Lee, with many variations since. Figure 1 gives a typical representation of this diagram.

  • While necessarily a simplification which has to be used with some caution, it nevertheless gives a reasonable conceptualisation of the various components of the Semantic Web. We describe briefly these layers.
  • Unicode and URI: Unicode, the standard for computer character representation, and URIs, the standard for identifying and locating resources (such as pages on the Web), provide a baseline for representing characters used in most of the languages in the world, and for identifying resources.

Information Retrieval and the Semantic Web

The Semantic Web has lived its infancy as a clearly delineated body of Web documents. That is, by and large researchers working on aspects of the Semantic Web knew where the appropriate ontologies resided and tracked them using explicit URLs. When the desired Semantic Web document was not at hand, one was more likely to use a telephone to find it than a search engine. This closed world assumption was natural when a handful of researchers were developing DAML 0.5 ontologies, but is untenable if the Semantic Web is to live up to its name. Yet simple support for search over Semantic Web documents, while valuable, represents only a small piece of the benefits that will accrue if search and inference are considered together. We believe that Semantic Web inference can improve traditional text search, and that text search can be used to facilitate or augment Semantic Web inference. Several difficulties, listed below, stand in the way of this vision.

Semantic Web Technologies in Software Engineering

THE SEMANTIC WEB

In the current Web, Web pages are intended for human consumption. The content is encoded in HTML which provides manly formatting information and makes it difficult for machines to access the semantics of the content. Natural language processing would be needed to do so. To overcome this limitation the SemanticWeb aims to make theWeb’s content machine-processable. Tim Berners-Lee et al. define the Semantic Web as an extension of the Web, in which information is given well-defined meaning, better enabling computers and people to work in cooperation [2].

Since the Semantic Web provides machine-processable information based on a formal semantics, data can be shared and reused across application, enterprise, and community boundaries [11]. Therefore, two applications that support the same ontology are able to exchange data even if they were not meant to interoperate in the first place.

Where are the Semantics in the Semantic Web?

Introduction
The current evolution of the Web can be characterized from various perspectives [Jasper & Uschold 2001]:

Locating Resources: The way people find things on the Web is evolving from simple free text and keyword search to more sophisticated semantic techniques both for search and navigation.

Users: Web resources are evolving from being primarily intended for human consumption to being intended for use both by humans and machines .

Web Tasks and Services: The Web is evolving from being primarily a place to find things to being a place to do things as well [Smith 2001].

All of these new capabilities for the Web depend in a fundamental way on the idea of semantics. This gives rise to a fourth perspective along which the Web evolution may be viewed:

  • Semantics—The Web is evolving from containing information resources that have little or no explicit semantics to having a rich semantic infrastructure.

Scalable Network Programming

The fork-and-do-something latency on my notebook on Linux 2.6 is 200
microseconds. That means my notebook can create 5.000 processes per second. Thus my notebook can handle about 13 billion forks per month. My Athlon XP 2000+ desktop can do 10.000 processes per second, or 26 billion per month. Heise Online, the biggest German site, had 118 million page impressions in September.

Scheduling
Why does the fork benchmark include writing to the pipe? Because having many processes not only makes creating more processes more difficult, it also makes choosing which process to run more difficult. The part of the operating system that chooses which process to run next is called the scheduler. A typical workload is having two dozen processes, with one or two of them actually having something to do (they are runnable).

iPhone-exif Developer Guide

Using the Library in your Project
The library can be used in two ways:

  1. Import the binary as a static library
  2. Embed the source directly

Use as a static library
To use as a static library in your project you must download the zip file and unzip to a suitable location.

The libiphone-exif.a is the static library, the include directory contains the header files. To use this in Xcode first add the library to the frameworks library.

  1. Select the frameworks folder.
  2. Select add > existing file
  3. Make sure the copy file option is selected in the dialog box.
  4. You should see the library appear in the frameworks folder as a toolbox icon. e.g

We now need to include the header files in our project.

  1. Select the Classes directory.
  2. Click add existing files