A Location-Aware Mobile Client for the Semantic Web

Document Sample
A Location-Aware Mobile Client for the Semantic Web Powered By Docstoc
					           Freie Universität Berlin
    Fachbereich Wirtschaftswissenschaft

    Lehrstuhl für Wirtschaftsinformatik
          Prof. Dr. Christian Bizer




   A Location-Aware Mobile Client
          for the Semantic Web

                  Diplomarbeit
 zur Erlangung des Grades eines Diplom-Kaufmanns




                 Christian Becker

Matrikelnr. 3930742     Bergmannstr. 21, 10961 Berlin
Telefon 0173/4119693       E-Mail chris@beckr.org




                       June 2008
Abstract
Mobile applications can be made location-aware by means of location techniques such
as built-in Global Navigation Satellite System (GNSS) receivers. The World Wide Web
(WWW) contains a wealth of information about objects that have physical locations,
which could be of high relevance for a mobile user.
      For instance, the website of a tourist sight could provide information about opening
hours and current exhibitions, whereas other websites could provide complimentary
reviews, encyclopedia articles and photos. When relevant information about objects of
interest is dispersed across multiple websites, like in the described case, it is hard to locate
and use this information in today’s web of documents.
      The Semantic Web is “a web of data” [BL98] whose technical foundation is the Resource
Description Framework (RDF). DBpedia1 is a Semantic Web representation of Wikipedia2
that contains information about many physical locations. Linked Data, a method that
allows easy interlinking of RDF data, is used to link DBpedia with various other open
datasets.
      This work applies Semantic Web technologies to realize geospatial browsing with data
from arbitrary, disparate websites. The location-aware application DBpedia Mobile renders
a map indicating nearby locations from the DBpedia dataset. Starting from this map, users
can explore background information about locations and navigate into interlinked datasets.
Linked Data may be leveraged to filter the map display, and users may publish information
with attached locations to the Semantic Web.
      DBpedia Mobile is supported by the server-side Marbles engine, which may be used as
a generic Linked Data browser.




  1
      http:// dbpedia.org/ About (retrieved 05/24/2008).
  2
      http:// en.wikipedia.org/ wiki/ Main_Page (retrieved 05/24/2008).


                                                     i
Eidesstattliche Erklärung
Hiermit erkläre ich an Eides Statt, dass ich die vorliegende Arbeit selbständig und ohne
unerlaubte fremde Hilfe angefertigt, andere als die angegebenen Quellen und Hilfsmittel
nicht benutzt und die den benutzten Quellen und Hilfsmittel wörtlich oder inhaltlich
entnommenen Stellen als solche kenntlich gemacht habe.
   Die Arbeit hat keiner anderen Prüfungsbehörde vorgelegen. Mir ist bekannt: Bei
Verwendung von Inhalten aus dem Internet habe ich diese zu kennzeichnen und Ausdrucke
davon mit Datum sowie der Internet-Adresse (URL) als Anhang der Diplomarbeit
beizufügen.




                                           ii
Contents
Abstract                                                                                           i

Eidesstattliche Erklärung                                                                         ii

1 Introduction                                                                                     1
     1.1   Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      1
     1.2   Published Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      3


I    Foundations                                                                                  4

2 Location Awareness in Mobile Applications                                                        5
     2.1   Location Awareness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      5
     2.2   Location Techniques for Mobile Phones . . . . . . . . . . . . . . . . . . . . .         5
     2.3   Current Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      7

3 The Geospatial Web                                                                               8
     3.1   Dawn of the Geospatial Web       . . . . . . . . . . . . . . . . . . . . . . . . . .    8
     3.2   Designating Geospatial Information . . . . . . . . . . . . . . . . . . . . . . .        8

4 The Semantic Web                                                                                10
     4.1   Foundations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     4.2   A Geospatial Semantic Web . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


II    Implementation                                                                              13

5 Motivation                                                                                      14
     5.1   Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     5.2   Geospatial Integration using Semantic Web Technologies . . . . . . . . . . . 14

6 Application Features                                                                            18
     6.1   Browsing    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
     6.2   Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     6.3   Area-Based Crawling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
     6.4   Content Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

7 Architecture Overview                                                                           33
     7.1   System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
     7.2   Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33




                                                 iii
                                                                                     CONTENTS


8 DBpedia Mobile                                                                                34
      8.1   Architecture and Technology Selection . . . . . . . . . . . . . . . . . . . . . 34
            8.1.1   Mobile Development Frameworks . . . . . . . . . . . . . . . . . . . . 34
            8.1.2   Target Device and Platform . . . . . . . . . . . . . . . . . . . . . . . 36
      8.2   Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
            8.2.1   Client Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
            8.2.2   Server-Side Web Services     . . . . . . . . . . . . . . . . . . . . . . . . 39
            8.2.3   Service Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
            8.2.4   Map Display Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . 41
            8.2.5   Content Creation Mechanism . . . . . . . . . . . . . . . . . . . . . . 42
      8.3   Positioning Helper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

9 Marbles Linked Data Engine                                                                    46
      9.1   Architecture and Technology Selection . . . . . . . . . . . . . . . . . . . . . 46
            9.1.1   Local Replication and Query Federation . . . . . . . . . . . . . . . . 46
            9.1.2   Database Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
            9.1.3   RDF Triple Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
      9.2   Component Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
      9.3   Dereferencing and Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
      9.4   Fresnel View Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
      9.5   owl:sameAs Inference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
      9.6   Integrating Geospatial Extensions . . . . . . . . . . . . . . . . . . . . . . . . 53
      9.7   Endpoint Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
      9.8   Service Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

10 RDF Conversion                                                                               56
      10.1 Geo Extractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
      10.2 Homepage Extractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
      10.3 flickrTM wrappr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58


III     Conclusion                                                                             60

11 Summary                                                                                      61

12 Outlook                                                                                      62


Appendices                                                                                     64

A List of Abbreviations                                                                         65



                                                 iv
                                                           CONTENTS


B List of Namespaces                                             67

C Compatibility of Web-Based Mapping APIs with Mobile Browsers   68


References                                                       69




                                  v
1     Introduction
Mobile phones feature increasingly powerful hardware, software and data connectivity,
and more and more phones are shipped with built-in Global Navigation Satellite System
(GNSS) receivers, whose positioning capabilities are exposed to third-party applications.
    The Semantic Web is an extension of the current World Wide Web (WWW) that
is expressly constructed to make content processable by machines, so as to enable better
cooperation of computers and people (cf. [BLHL01, p. 37]). As this “web of data” [BL98] is
taking shape, rich and interlinked datasets become publicly available, such as the datasets
of the Linking Open Data project [W3C08f].
    Location could be used as an entry point into the Semantic Web to allow users to
discover resources in their physical vicinity, as well as data connected to these resources.
This data could be leveraged to perform highly personalized queries, such as finding
resources where friends are located, as well as queries with a high domain specificity,
for example finding train stations of a specific line.
    Likewise, contextual information could be included when the user himself publishes to
the Semantic Web. For example, a photo of an object taken with a phone’s internal camera
could be linked to a Semantic Web resource that represents the object, by resolving the
user’s geographic location with an appropriate database.
    This work sets out to provide a working prototype of a mobile application that
approaches like scenarios based on current Semantic Web technologies and publicly
available data sources.


1.1   Thesis Outline

The first part of this thesis introduces the fundamental concepts of Location Awareness,
the Geospatial Web and the Semantic Web. The second part states the problem and
introduces an approach for geospatial integration using Semantic Web technologies, which
is implemented as the application DBpedia Mobile. The third part concludes the work with
a summary and an outlook on future directions.


    Section 1: Introduction.


    Part I: Foundations.


    Section 2: Location Awareness in Mobile Applications. This section intro-
duces the concepts of context awareness and location awareness and applies them to
current mobile phones. It discusses current location techniques and location-aware mobile
applications.




                                             1
                                                                      1 INTRODUCTION


   Section 3: The Geospatial Web. Following an introduction of the Geospatial
Web and underlying concepts such as geo-tagging, this section gives an overview of current
location-centric services on the web and lists commonly used standards for the designation
of geospatial information.


   Section 4: The Semantic Web. This section introduces the technical foundations
of the Semantic Web and shows how content may be published to, and retrieved from the
Semantic Web. It introduces the concept of Linked Data and its applications, and discusses
parallels between the Semantic Web and the Geospatial Web.


   Part II: Implementation.


   Section 5:     Motivation. After presenting the problem statement, this section
outlines an approach to geospatial integration that uses Semantic Web technologies,
notably Linked Data.


   Section 6: Application Features. This section introduces DBpedia Mobile and
shows how it can be used to to browse, filter, crawl and create Linked Data pertaining to
resources in the user’s current physical environment. It furthermore discusses the general
browsing capabilities of the underlying Marbles engine.


   Section 7: Architecture Overview. In this section, the solution’s client-server
system architecture and its data model are presented. It explains the task separation
between DBpedia Mobile and Marbles, as well as their coupling, which is realized using
SPARQL Protocol and RDF Query Language (SPARQL) and lightweight Representational
State Transfer (REST) web services.


   Section 8: DBpedia Mobile. Following a discussion of DBpedia Mobile’s architec-
ture and the technology selection process, this section introduces its client- and server-side
components and their interactions. It introduces a Positioning Helper application, which
may be used to initialize DBpedia Mobile with the user’s current location.


   Section 9: Marbles Linked Data Engine. This section introduces the Marbles
Linked Data Engine. It discusses the underlying architecture and the technology selection
process and gives an overview of the application’s components, followed by a discussion of
core mechanisms. The section concludes with an overview of the services provided by the
Marbles endpoint and a brief discussion of the service setup.




                                              2
                                                                  1 INTRODUCTION


   Section 10: RDF Conversion. This section discusses the conversion of required
datasets to RDF and their publication as Linked Data. This was realized by the Geo and
Homepage Extractors and the flickrTM wrappr.


   Part III: Conclusion.


   Section 11: Summary. This section summarizes the work.


   Section 12: Outlook. This section gives an outlook on directions for future work.


1.2   Published Work

The following parts of this thesis have been published:

   • DBpedia Mobile and Marbles were presented at the 1st Workshop about Linked Data
      on the Web (LDOW2008) in Beijing, China [BB08b].

   • The Geo and Homepage Extractors are integrated into DBpedia since the 2.0 release
      (cf. [DBp08a]).

   • The flickrTM wrappr [BB08a] is linked from DBpedia since the 3.0 release (cf. ibid.).

   • Inference support for the Sesame Relational Database Management System (RDBMS)
      storage layer was provided to the vendor and will be integrated into an upcoming
      release.




                                            3
Part I

Foundations




              4
2     Location Awareness in Mobile Applications
This section will introduce the fundamentals of location awareness in mobile applications,
with a focus on mobile phone applications.


2.1    Location Awareness

Mobile phones are prevalent mobile consumer devices (cf. [Inf07]). As they become more
and more powerful, they evolve into prime platforms for mobile applications. Compared
to desktop applications, mobile applications are subject to different usage situations and
device parameters, such as screen size and input methods (cf. [RM06, 2.]).
    Context awareness (cf. [Dey01, p. 5]) could help alleviate these challenges: A context-
aware mobile application could adapt to the user’s device and also reduce the amount of
manual input required.
    Following [Dey01], “[c]ontext is any information that can be used to characterise the
situation of an entity. An entity is a person, place, or object that is considered relevant
to the interaction between a user and an application, including the user and applications
themselves.” [Dey01, p. 5] In the scenario of a mobile application, context could thus
include location, time, device parameters and the scope of the user’s current activity – for
instance, a vacation.
    Location awareness is a central component of the context-aware computing concept
(cf. [ST94, p. 22]). Location is easy to determine and allows for the inferring of other
components of context (cf. [AS03, p. 275]).


2.2    Location Techniques for Mobile Phones

Several methods have been devised for the location of a mobile device (cf. [LCC+ 05, p.
116]). This section introduces the methods most widely used in conjunction with consumer
mobile phones.


    Network-Based Location Techniques have been implemented by mobile network
operators to meet requirements for emergency services (e.g. [Eur02, §26.3], [Fed04, (e)ff.]).
These techniques allow estimation of a device’s position by reconciling time-of-arrival or
angle-of-arrival signal measurements from multiple cell towers (cf. [WGM00, p. 1f.]).
    Based on these capabilities, mobile operators have begun offering other location-based
services to end users (cf. [LCC+ 05, p. 119]), albeit with high fees for each positioning
query (e.g. cf. ibid.).


    Global Navigation Satellite Systems (GNSSs) allow mobile devices to deter-
mine their position using signals transmitted by orbital satellites (cf. [ZS06, p. 84]). At



                                              5
                                 2 LOCATION AWARENESS IN MOBILE APPLICATIONS


the moment, the only fully operational system is the Global Positioning System (GPS) by
the United States of America (cf. ibid.).
      At least 24 GPS satellites continuously broadcast their position along with time stamps
provided by on-board atomic clocks (cf. [Sch07a, p. 6]). By correlating time and position
of the signals by at least four satellites, a mobile receiver on the earth can determine the
time as well as its velocity and position (cf. ibid.), the latter with a typical accuracy of
less than 10 meters (cf. [ZS06, p. 84]).
      A major drawback of current GPS technology lies in the fact that it requires a clear view
of the sky and hence does not work well in indoor scenarios, or areas with high building
density (cf. [LCC+ 05, p. 118]). Ongoing modernization efforts and new, GPS-compatible
GNSSs such as the European Union’s Galileo system are expected to improve performance
as well as positioning time and accuracy in such scenarios (cf. [ZS06, p. 85ff.]).
      Another approach to counter weak reception are network-aided GNSS solutions. These
employ GNSS receivers at cell towers in order to augment the amount of satellite data
available for positioning a GNSS-enabled mobile device (cf. [WGM00, p. 3]). Specifically,
network-assisted GNSS or GPS refers to scenarios where the data combination takes place
on the mobile device (cf. ibid.).


      Radio Beacon Positioning utilizes known locations of wireless transmitters such
as 802.11 wireless access points, Bluetooth devices and cellphone towers and is reported to
achieve 20-30 meter median accuracy in an urban area (cf. [LCC+ 05, p. 116f.]).
      The distinctive advantage of this approach over GNSS lies in its ability to perform well
in indoor environments (cf. ibid., p. 2f.). Implementations include Place Lab [LCC+ 05],
Loki Mobile3 and Navizon4 .


      Discussion. Compared with network-based location techniques, GNSS features
higher accuracy and permits a device to perform positioning by itself, without the need
for upstream communication. This lowers both commercial and technical barriers to entry
for location-based applications: No monetary cost is incurred per query, and standardized
Application Programming Interfaces (APIs) such as [Nok06a, Nok04, Mic08c] can be used
to retrieve position information.
      GNSS positioning components are constantly becoming smaller and more sensitive to
allow for integration into mobile phone designs (cf. [Yom07]). The number of mobile
phones with GNSS support is increasing rapidly – some network operators are already
embedding GNSS receivers into every new phone (cf. [Sch07a, p. 7]).
      With ongoing improvements in receiver sensitivity, increased satellite coverage and
technologies such as assisted GNSS, current shortcomings of GNSS may be overcome in a
  3
      http:// www.loki.com/ download/ mobile (retrieved 05/24/2008).
  4
      http:// www.navizon.com/ (retrieved 05/24/2008).



                                                    6
                              2 LOCATION AWARENESS IN MOBILE APPLICATIONS


few years. GNSS may then be able to provide ubiquitous positioning with an accuracy of
a few meters.


2.3       Current Applications

Although studies predict growing interest in location-based services, they have yet to reach
widespread user adoption (cf. [IDC06] as cited by [Sch07a, p. 6], [CJ06] as cited by [Sch07a,
p. 7]).
      Nonetheless, vendors are currently putting a lot of effort into location-based applica-
tions, and as these applications mature, the usage of location shifts from basic mapping to
location awareness, where location and movement information is used to better understand
the user’s context (cf. [Ble05]). Mobile operators begin to offer navigation and tracking
applications (examples include Sprint5 and Helio6 ) and major software companies integrate
GNSS-enabled mapping functionalities into their mobile offerings (examples include Google
Maps Mobile7 , Yahoo! Go8 and Microsoft Live Search for Windows Mobile9 ). Phone
manufacturer Nokia recently took a high stake on the success of location-based services
when it designated them as “one of the cornerstones of Nokia’s Internet services strategy”
[Nok07] and agreed to acquire the mapping provider NAVTEQ for $8.1 billion (cf. ibid.).




  5
      https:// manage.sprintpcs.com/ Manage/ portal/ goTo? action=selectFolder&folderId=FLD104886 (re-
trieved 05/24/2008).
    6
      http:// www.helio.com/ #services_gps (retrieved 05/24/2008).
    7
      http:// www.google.com/ mobile/ gmm/ (retrieved 05/24/2008).
    8
      http:// mobile.yahoo.com/ go (retrieved 05/24/2008).
    9
      http:// www.microsoft.com/ windowsmobile/ livesearch/ default.mspx (retrieved 05/24/2008).


                                                  7
3         The Geospatial Web

3.1        Dawn of the Geospatial Web

Today’s World Wide Web contains a wealth of information with a geospatial component:
Business and event listings, news items, blog posts, encyclopedia articles, transport
information, photos, videos and advertisements all have locations associated with them,
either explicitly or implicitly. Until recently, little effort was made to harness this geospatial
component.         Apart from purposive directory and map services such as MapQuest10 ,
the usage of the Web as a platform for geospatial purposes was limited to Geographic
Information System (GIS) professionals.
         2005 saw the introduction of mapping APIs by services such as Google Maps11 , Yahoo!
Maps12 , and Microsoft Virtual Earth13 that led to the widespread integration of maps into
related services. It also resulted in a wide spectrum of mapping mashups which combine
data from one or multiple web services with a map display such as Google Maps.14 Services
such as photo sharing site Flickr15 and community-authored encyclopedia Wikipedia began
encouraging their users to geo-tag content, i.e. to associate it with geographical coordinates.
Geo-tagged content may then be integrated into map-based navigation, in order to facilitate
information selection and analysis (cf. [Jon07, p. 10]).
         As of 2007, a multitude of location-centric services are available on the web. They
include local reviews (such as Yelp16 and Qype17 ), photography (such as Flickr places18 ),
custom maps (such as Platial19 and Google MyMaps20 ), sharing of presence information
(such as Plazes21 , Jaiku22 , loopt23 ) and real-world annotations or digital graffiti (such as
Socialight24 ). Many of these services provide mobile interfaces.


3.2        Designating Geospatial Information

Several standards have emerged for the designation of geospatial information on the Web.
    10
       http:// www.mapquest.com/ (retrieved 05/24/2008).
    11
       http:// code.google.com/ apis/ maps/ (retrieved 05/24/2008).
    12
       http:// developer.yahoo.com/ maps/ (retrieved 05/24/2008).
    13
       http:// dev.live.com/ virtualearth/ (retrieved 05/24/2008).
    14
       See [Pro08b] for a comprehensive listing.
    15
       http:// www.flickr.com/ (retrieved 05/24/2008).
    16
       http:// www.yelp.com/ (retrieved 05/24/2008).
    17
       http:// www.qype.com/ (retrieved 05/24/2008).
    18
       http:// www.flickr.com/ places (retrieved 05/24/2008).
    19
       http:// www.platial.com/ (retrieved 05/24/2008).
    20
       http:// maps.google.com/ help/ maps/ mymaps/ create.html (retrieved 05/24/2008).
    21
       http:// plazes.com/ (retrieved 05/24/2008).
    22
       http:// www.jaiku.com/ (retrieved 05/24/2008).
    23
       https:// loopt.com/ loopt/ sess/ index.aspx (retrieved 05/24/2008).
    24
       http:// socialight.com/ (retrieved 05/24/2008).




                                                     8
                                                                      3 THE GEOSPATIAL WEB


      OGC Standards. The Open Geospatial Consortium, Inc. (OGC)25 , a GIS industry
consortium, is developing several specifications that aim to improve the inter-operability of
geospatial applications (cf. [Ope08a]). These include Geography Markup Language (GML)
[Ope08e], an Extensible Markup Language (XML) [BPSM+ 06] format for the expression of
geographical features and Web Feature Service (WFS) [Ope08f], an interface specification
for the transmission of geographical features using payloads such as GML.


      Basic Geo (WGS84 lat/long) Vocabulary. Created as an informal collaboration
within the World Wide Web Consortium (W3C) Semantic Web Interest Group, the Basic
Geo (WGS84 lat/long) Vocabulary [Bri06] allows for the specification of geographical
coordinates as points with latitude, longitude and altitude properties using the World
Geodetic System 1984 (WGS84) [US04] reference datum (cf.                    [Bri06, Basic RDF
Geo Vocabulary: Point/lat/long/alt]).             Although designed as a Resource Description
Framework (RDF) vocabulary (cf. section 4), it has also received significant usage in
non-RDF XML documents (cf. [Bri06]).


      GeoRSS [Geo08] allows to embed location information in Atom [NS05] and Really
Simple Syndication (RSS) [RSS07] feeds. Originally based on the Basic Geo Vocabulary,
it now provides Simple and GML encodings. GeoRSS is currently being discussed by the
OGC for possible approval as a Best Practices document (cf. [Ope07]).


      W3C Geospatial Vocabulary. The W3C Geospatial Incubator Group26 recently
completed work on an updated geospatial RDF vocabulary [LSG07], thereby largely
drawing from GeoRSS and GML (cf. [LSG07, Introduction]). The implementation of
spatial relationships was postponed (cf. ibid., 1.2).


      KML. Google’s Keyhole Markup Language (KML) [Ope08d] is an XML-based
grammar for the description of geographical features (cf. [Goo08]). It is supported by
a wide range of applications (e.g. cf. [Ope08d]) and was recently approved as an OGC
standard (cf. [Ope08c]).


      Microformats. hCard [Çel08b] and geo [Çel08a] Microformats allow for machine-
readable designation of geographic locations inside XHTML webpages and have been widely
adopted (e.g. cf. [Mic08a, Çel08a]).




 25
      http:// www.opengeospatial.org/ (retrieved 05/24/2008).
 26
      http:// www.w3.org/ 2005/ Incubator/ geo/ (retrieved 05/24/2008).


                                                    9
4     The Semantic Web
The Semantic Web is “a web of data” [BL98] that “allows data to be shared and reused
across application, enterprise, and community boundaries” [Her08]. It builds upon the
decentralized and open architecture of the World Wide Web, where “anything can link to
anything” [BLHL01, p. 37]. Organized as part of W3C Semantic Web Activity [Her08],
several working groups are developing standards for the Semantic Web.


4.1   Foundations

This section will introduce fundamentals of the Semantic Web and discuss selected related
technologies.


    The Resource Description Framework (RDF) is a set of six W3C recommen-
dations [Bec04, BG04, MM04, KC04, Hay04, GB04] which can be seen as the technical
foundation of the Semantic Web. Most notably, [KC04] introduces a graph data model
that allows the expression of meaning in the form of subject, predicate and object triples,
whereby subjects and objects are nodes (cf. [KC04, 3.1]). The vocabulary used to express
these elements is fully extensible (cf. ibid., 2.2.3), and each of them may be a Uniform
Resource Identifier (URI) [BLFM05] reference (cf. ibid., 3.2), which may potentially be
dereferenced in order to obtain more information about the resource (cf. [BLFM05, 1.2.2]),
much like a hyperlink on the World Wide Web.


    Ontologies formally define terms and relations among them (cf. [BLHL01, p. 40]),
serving as agreed-upon vocabularies among communities (cf. [SBLH06, p. 100]). They
typically include inference rules (cf. [BLHL01, p. 40]) that enable machines to derive
logical conclusions from data (reasoning or inference).
    The Web Ontology Language (OWL) is a set of W3C Recommendations [MvH04,
SWM04, BvHH+ 04, PSHH04, CR04, Hef04] that allow for an RDF-based specification
of ontologies.


    Linked Data emphasizes on naming nodes with Hypertext Transfer Protocol (HTTP)
[FGM+ 99] URIs which provide useful information when dereferenced, and using them to
interlink data to allow related data to be found (cf. [BL07a]). Much data on the Semantic
Web currently does not follow these criteria (cf. [BL07a]). [BLCC+ 06] attributes this
in part to a “chicken-and-egg problem” [ibid., p. 1] where “a lack of linked data is self-
sustaining in that without things to link to, there is no incentive for putting one’s own data
on the web” [ibid., p. 1f.]. The Linking Open Data W3C Semantic Web Education and
Outreach (SWEO) Community Project [W3C08f] has recognized this problem and aims
to “build a data commons by making various open data sources available on the Web as


                                             10
                                                                                                    4 THE SEMANTIC WEB



                                                                    ECS                   Sem-
                                                                   South-                 Web-
                                                                   ampton                Central
                                                                              updated

                                 Music-                                      Doap-
                                                   Audio-                    space           Flickr
                                 brainz
                                                  Scrobbler       QDOS                      exporter         SIOC
                                                                                                            profiles


                         BBC              BBC            Magna-
                                                                                                   Onto-             SW
                        Later +           John            tune
             Jamendo                                                                               world
                                                                                                                  Conference
                         TOTP             Peel                                FOAF                                  Corpus
                                                                             profiles                                          Open-
                                                                                                                               Guides
                              Geo-
                             names                                                                   Revyu

                                                               DBpedia                                                  RDF Book
                US
              Census                                                                                                     Mashup
                                                 World
               Data        NEW!                  Fact-                                             DBLP
                                                 book                          lingvoj
                                  riese                                                            Berlin
                                                                                                                       NEW!
                                                                                                                RKB
                                                     Euro-                                                    Explorer
                                                      stat
                                                                                flickr
                         Gov-          Wiki-                      Open         wrappr
                         Track       company                       Cyc
                                                                                              DBLP
                                                                                            Hannover
                                                      W3C                   Project
                                                     WordNet                Guten-
                                                                             berg




                       Figure 1: The Linking Open Data dataset cloud [Cyg08].


RDF and by setting RDF links between data items from different data sources.” [W3C08f].
As of October 2007, it counts over two billion RDF triples and around three million RDF
links (cf. ibid.). Figure 1 depicts the Linking Open Data dataset cloud, which shows the
currently participating datasets and their interconnections. DBpedia27 , a Semantic Web
representation of Wikipedia, currently serves as a large hub.


      Publishing Existing Content. Several format converters and conversion frame-
works have been created to port existing content to the Semantic Web by converting it
to RDF28 . Notably, RDFa [AB08, ABMP08, AH07a] is a set of W3C Working Drafts
that allow for the expression of structured data in languages such as HyperText Markup
Language (HTML) [RHJ99] and Extensible HyperText Markup Language (XHTML)
[PAA+ 02] (cf. [AB08, Abstract]), and Gleaning Resource Descriptions from Dialects of
Languages (GRDDL) [Con07] is a W3C Recommendation that provides means to associate
XML documents with appropriate RDF extraction algorithms (cf. [Con07, Abstract]).
Dynamic content may be represented by means of database (e.g.                                                          [BS04]) and API
wrappers, which also allow publication as Linked Data (e.g. [BG07, BB08a]).
 27
      http:// dbpedia.org/ About (retrieved 05/24/2008).
 28
      See [W3C08a] for a comprehensive listing.




                                                                    11
                                                                          4 THE SEMANTIC WEB


    Data Retrieval and Display. SPARQL Protocol and RDF Query Language (SPARQL)
is a set of three W3C Recommendations [PS08, CFT08, BB08c] for the querying
of RDF data sources that is widely supported by Semantic Web toolkits (e.g.                              cf.
[BW07, W3C08d]). It currently does not include update mechanisms, however several
related proposals have been made (cf. [W3C08e]).
    Fresnel [BLP05] is a display vocabulary that allows for selection, formatting and styling
of RDF content (cf. [BLP05, 1]). It uses the Fresnel Selector Language for RDF (FSL)
[Pie05] to model traversal paths in RDF graphs (cf. ibid., 1).


4.2    A Geospatial Semantic Web

Semantic Web and Geographic Information System communities have recognized the
complementary relation of their work: In 2005 the OGC began work on a Geospatial
Semantic Web Interoperability Experiment that seeks to “address several important
steps towards the development of a Geospatial Semantic Web (GSW), where discovery,
query, and consumption of geospatial content are based on formal semantic specification.”
[Ope08b]
    Conversely, the W3C Geospatial Incubator Group built upon work by the OGC in
the course of developing the W3C Geospatial Vocabulary (cf. [LSG07, Introduction]). In
addition, the Geospatial Semantic Web was topic of the Terra Cognita 2006 workshop29 at
the International Semantic Web Conference 2006, the W3C Ubiquitous Web Workshop30
and the First and Second International Conference on Geospatial Semantics31 .




   29
      http:// www.ordnancesurvey.co.uk/ oswebsite/ partnerships/ research/ research/ terracognita.html   (re-
trieved 05/24/2008).
   30
      http:// www.w3.org/ 2006/ 02/ ubiwebws-agenda.html (retrieved 05/24/2008).
   31
      http:// geosco.org/ (retrieved 05/24/2008).


                                                    12
Part II

Implementation




                 13
5         Motivation

5.1         Problem Statement

The Web contains a wealth of information with a geospatial component (cf. section 3)
that could be of high relevance for a mobile user – for instance, friends’ current locations,
information about sights, event listings, recommendations for nearby businesses and
services as well as transport advice. By leveraging location techniques such as built-in
GNSS receivers, mobile applications can be made location-aware (cf. section 2), so that
they could use this content.
         Relevant content pertaining to objects with physical locations is often dispersed across
multiple websites – for instance, a tourist sight’s opening hours and its current exhibitions
could be published on its official website, whereas another website could provide reviews
about these exhibitions. A third website could host an encyclopedia article about the
sight’s history in several languages, and a fourth site could feature photos taken at the
sight.
         An approach to geospatial browsing that integrates data from arbitrary, disparate
sites is beneficial because it can decrease the effects of individual sites’ subjective bias
and because it can incorporate specialist websites that are dedicated to one type of
information32 . This approach further allows consideration of user-generated content and
niche websites, which were attributed a high importance by the recent Web 2.0 concept
(cf. [O’R05, p. 5]).
         However, in today’s web of documents, content is geared towards human consumption,
which makes it hard to extract individual pieces of information and to harmonize content
stemming from disparate websites.


5.2         Geospatial Integration using Semantic Web Technologies

Semantic Web technologies, notably RDF and Linked Data, provide a powerful foundation
to realize the envisioned approach. RDF brings the following opportunities:


         Simple Provisions for Data Integration. Because RDF uses URIs, two disparate
data sources can make statements about the same subject. Reasoning mechanisms can
support the harmonization of data sources, for example by using owl:sameAs statements
to merge statements about a resource that is identified by multiple URI Aliases (cf.
subsection 9.5).


         High Granularity. Because RDF treats data at a very high granularity, resources
can be filtered by a large number of aspects, and their display may be adapted to various
    32
         Such as Flickr for photos, or Qype for reviews



                                                          14
                                                                          5 MOTIVATION


requirements.
      For instance, a user browsing an area could have a primary interest in the type of
resources he is dealing with (e.g. restaurant, museum, subway station) and their names
(preferentially expressed in his native language). RDF allows distinct access to these
elements, so that resources can be depicted with a label and an icon according to their
type, and the user may search for resources using both aspects.
      Fresnel may be used to create custom views from a resource’s properties. On a mobile
phone with limited display space, a suitable view could consist of a label, a short summary
text and a picture.


      High Domain Specificity. As RDF features a fully extensible vocabulary, informa-
tion about resources can cover many topic domains, which are in practice often represented
by specific ontologies. For instance, the sight’s opening hours could be expressed using the
iCal ontology [CM06] (e.g. cf. [W3C06]), while reviews about the sight could be expressed
using the RDF review vocabulary [AH07b].
      When a client application is aware of an ontology, it can leverage this data to perform
complex queries, such as limiting results to sights that are open at the current time (ideally
based on the information provided by the sights’ official websites), or to sights that have
received good reviews (ideally provided by independent websites).


  Linked Data is highly applicable to the envisioned scenario because it provides a very
simple mechanism for disparate sites to publish their content in an interlinked manner. It
is also easy to integrate existing content as required – in the scope of this work, several
datasets have been published as Linked Data (cf. section 10).
      The Linking Open Data project provides a practical environment to realize a geospatial
information service, because its offers an extensive amount of interlinked data from
heterogenous sources about a large number of resources, including many physical locations.
Notably, the DBpedia dataset contains location information for more than 200,000 of
its 2.18 million things, as well as labels and short abstracts in 14 different languages,
489,000 links to images and 2,700,000 links to external web pages, and DBpedia resources
are classified within three different classification hierarchies (cf. [DBp08b]; the number
of locations was corrected based on an own count). DBpedia data about locations is
interlinked with various other location-related datasets, such as the GeoNames33 , US
Census34 , CIA Factbook35 , and EuroStat36 datasets. Altogether there are around 2,101,000
external RDF links into other RDF datasets on the Web (cf. [DBp08b]).
 33
    http:// www.geonames.org/ (retrieved 05/24/2008).
 34
    http:// www.rdfabout.com/ demo/ census/ (retrieved 05/24/2008).
 35
    http:// www4.wiwiss.fu-berlin.de/ factbook/ (retrieved 05/24/2008).
 36
    http:// www4.wiwiss.fu-berlin.de/ eurostat/ (retrieved 05/24/2008).




                                                  15
                                                                         5 MOTIVATION


      By correlating a geospatial position with those of DBpedia resources, nearby resources
can be found. One thereby obtains an entry point into the Geospatial Semantic Web,
as these resources have a wealth of other information associated with them in both
DBpedia and other datasets of the Linking Open Data project, which is freely accessible
via dereferencing or SPARQL interfaces.
      Figure 2 illustrates this approach: By correlating a user’s position with those of
DBpedia resources, the resource http://dbpedia.org/resource/Brandenburg_Gate is found
in the user’s proximity. DBpedia may now be queried for additional information, which will
provide labels such as “Brandenburger Tor” (German) and “Porte de Brandebourg” (French)
expressed using rdfs:label statements, and types such as yago:Attraction111426530,
yago:Building102913152, yago:Gate103427296 and yago:Landmark108624891 indi-
cated using rdf:type statements. Type information can be used to find an appropriate
icon to depict the resource on a map, as illustrated by the included icons, or to provide for
the filtering of locations according to their type, which is especially important on mobile
devices with limited screen space in order to prevent maps from overpopulating.
      By following links included in DBpedia data and issuing the URI to other services,
additional information can be obtained. In this case, Revyu37 lists a review for an identical
resource, the flickrTM wrappr provides a depiction from Flickr, and a person indicates that
he is foaf:based_near the resource in his personal Friend of a Friend (FOAF) [BM07]
profile. The aforementioned review, photo and person are themselves resources that may
feature further relations, as is indicated by the “...” bubbles.




 37
      http:// revyu.com/ (retrieved 05/24/2008).


                                                   16
                                                                                                                         5 MOTIVATION




                 geo:point      “52.51619                           “52.51630
                                13.37613”                           13.37769”
                                                                                                       "Porte de
          User                                                                                     Brandebourg"@fr

                                                                geo:point
                                                                                                              "Brandenburger
                                ...                                                           rdfs:label
                                                                                                                 Tor"@de




                                                              http://dbpedia.org/
                                      foaf:based_near              resource/
                                                              Brandenburg_Gate                                           yago:
                     http://                                                                  rdf:type           Attraction111426530
                    beckr.org
                     #chris
                                             foaf:depiction
    ...                                                                                                            yago:
                                                                                                             Landmark108624891
                                                                              rev:hasReview


                                  http://                                                                    yago:
                          farm3.static.flickr.com/                                                        Gate103427296
                         2062/2103697005_651da
                               7a967_m.jpg                        http://revyu.com/
                                                                       reviews/
                                                              f72388088a44c99e1688d8
                                                                 a3e9a6629c5fdafdd5

                   ...




                                                                            ...



Figure 2: A DBpedia resource in the user’s vicinity serves as a rich entry point into the
Geospatial Semantic Web.




                                                                       17
6         Application Features
Following the considerations in section 5, the web application DBpedia Mobile 38 and its
server-side Linked Data rendering and storage engine Marbles 39 were developed. DBpedia
Mobile allows users to discover, search and publish Linked Data pertaining to their current
physical environment using their mobile phones.
         The application may also be accessed on desktop computers.                While GNSS-based
positioning is likely of limited interest in this scenario, the desktop view may be used
to explore DBpedia resources around the world. It also provides more complex query
capabilities (cf. subsection 6.2).
         DBpedia Mobile is initialized using a supplemental launcher application which runs
natively on the device and reads the user’s position from a built-in or externally connected
GNSS receiver (cf. subsection 8.3). Figure 3 shows DBpedia Mobile’s initial view on
a mobile phone: The user’s position and nearby DBpedia resources are indicated on an
area map, using appropriate labels and icons. The map can be panned by dragging it on
the touch screen, or zoomed using the provided controls. When accessed from a desktop
computer, a Google search bar is shown in the bottom left corner, which allows to search
for locations using Google. Clicking on a search result centers the map on the respective
item.




Figure 3: DBpedia Mobile is accessed using an o2 Xda orbit 2 [O08] device, showing a
map view of resources in the user’s proximity.

         The map view features all 204,471 geographic locations of DBpedia40 . Map items
can be labeled in 14 languages using DBpedia’s labels41 dataset. DBpedia’s YAGO class
associations42 are used to find adequate icons to depict resources, based on a mapping of
selected YAGO categories [SKW07].
    38
       Accessible at http:// beckr.org/ DBpediaMobile (retrieved 05/24/2008).
    39
       Accessible at http:// beckr.org/ marbles (retrieved 05/24/2008).
    40
       http:// wiki.dbpedia.org/ Downloads30#geographiccoordinates (retrieved 05/24/2008).
    41
       http:// wiki.dbpedia.org/ Downloads30#titles (retrieved 05/24/2008).
    42
       http:// wiki.dbpedia.org/ Downloads30#yagoclasses (retrieved 05/24/2008).


                                                    18
                                                               6 APPLICATION FEATURES


      A Settings Panel provides the following options:

      • For demonstration purposes, the location may be changed to one of seven pre-defined
        locations, as well as to the estimated user position based on his Internet Protocol (IP)
        [Pos81] address location.

      • A preferred language can be chosen from the 14 languages supported by DBpedia. It
        will be used to label resources in the map view as well as for the display of resource
        labels and summary texts in Marbles.

      • The map imagery source may be switched between OpenStreetMap43 (default) and
        Google Maps44 .

      By clicking on a resource, a browser view is initiated (cf. subsection 6.1). DBpedia
Mobile further supports the filtering of views (cf. subsection 6.2), area-based crawling
of Linked Data (cf.          subsection 6.3) and the creation of linked data by users (cf.
subsection 6.4). These functionalities are accessible through icons in the top right corner
of the screen, as listed in Table 1.

                      Icon       Action
                                 Zooms map in and out
                                 Opens the Filters Panel (cf. subsection 6.2)
                                 Opens the Settings Panel
                                 Crawls the currently visible area (cf. subsec-
                                 tion 6.3)
                                 Opens the Content Creation Panel (cf.
                                 subsection 6.4)
                                 Login and Logout
                                 Opens the DBpedia Mobile wiki page45


                        Table 1: Menu icons in the top right screen corner.



6.1      Browsing

Clicking on a resource brings up a summary view of the selected item. It is generated by
the Marbles engine using Fresnel [BLP05] lenses and formats. A summary view includes
a short text describing the resource and optionally an image, a link to the resource’s
foaf:homepage and reviews from the Revyu rating site if existent. At the bottom of the
page, links are provided to access a photo view and a full view for the resource. Figure 4
shows a summary view for the Brandenburg Gate which includes a review obtained from
 43
      http:// openstreetmap.org/ (retrieved 05/24/2008).
 44
      http:// maps.google.com/ (retrieved 05/24/2008).


                                                    19
                                                                     6 APPLICATION FEATURES


Revyu and a photo obtained from Wikipedia. Colored dots and specific site icons (such
as a blue star for Revyu) are used to indicate the origin of data. On desktop computers,
the source Uniform Resource Locator (URL) [BLMM94] is displayed when the mouse is
hovered over the icon.
      A photo view displays depictions of the resource, which generally includes photos from
Wikipedia as provided by DBpedia, as well as photos provided by the flickrTM wrappr (cf.
subsection 10.3). Figure 5 shows a photo view for the previously selected resource.
      A full view displays all known properties for the resource. Figure 6 shows a full view
for the previously selected resource. If the displayed data contains RDF links into other
datasets, the user may click them to obtain a full view of the referenced resource. In this
manner, he can navigate from the DBpedia dataset into other interlinked datasets. For
instance, he could traverse GeoNames’ parentFeature link hierarchy to find out more
about the city, state and country in which a resource is located.
      Figure 7 shows the full view of the Brandenburg Gate’s district Tiergarten, which
incorporates Linked Data from GeoNames, as displayed on a desktop computer. At the
bottom of the page, the full view features a list of sources that correspond to the colored
dots and icons. Each source listing contains the URL, the retrieval status and date as well
as a clear link to remove the source’s data from the cache. This functionality may be used
to force reloading of the data when the view is generated again.
      Marbles may be used outside of DBpedia Mobile as a generic Linked Data browser like
Tabulator [BLCC+ 06] and Disco46 . For instance, it is suitable for the display of FOAF
profiles. Figure 8 shows the FOAF profile of Tim Berners-Lee viewed using Marbles. The
colored dots allow to identify facts that are mentioned in several datasources, such as
his name. Furthermore, an URI Alias (cf. subsection 9.5) at www4.wiwiss.fu-berlin.de is
indicated.


6.2      Filtering

The user may limit the map view display to resources that match specific constraints, using
information that was previously either pre-loaded or cached into the database. Resources
may be filtered using Simple and SPARQL Filters:


Simple Filters consist of one or multiple conditions that are applied in conjunction.
Conditions can pertain to resource types, ratings that are associated with resources, and
for demonstration purposes, the population of inhabited areas and the number of stories
of buildings.
      Resource types may be chosen from pre-defined sets that encompass one or more
YAGO categories, such as Museums (yago:Museum103800563) or Train Stations (yago:
 46
      http:// www4.wiwiss.fu-berlin.de/ bizer/ ng4j/ disco/ (retrieved 06/10/2008).



                                                     20
                                                     6 APPLICATION FEATURES




Figure 4: A summary view of a resource that includes a review obtained from Revyu as
well as an abstract text and a photo obtained from DBpedia.




           Figure 5: A photo view showing photos from DBpedia and Flickr.




Figure 6: A full view provides all known information about a resource. From here, the
user may navigate into other interlinked datasets.



                                         21
                                                       6 APPLICATION FEATURES




Figure 7: A full view displayed on a desktop computer incorporates interlinked data from
GeoNames and lists data sources at the bottom of the page.

                                          22
                                                           6 APPLICATION FEATURES


RailwayStation104049098, yago:Station104306080), whereas ratings and numeric
conditions are specified using an operator drop-drown (is / is at least / is less than)
and an associated operand input field.
   In Figure 9, the Simple Filter Builder interface is used to limit display to resources of
type Sightseeing which have received a rating of at least three stars. A server-side Query
Service (cf. subsection 8.2) rewrites each simple condition into a SPARQL condition and
by default applies a custom condition to limit results to the currently visible map area.
The latter behavior may be controlled using the checkbox Limit to map view.


SPARQL Filters allow expression of filters using the SPARQL query language. They
are constructed using the SPARQL Filter Builder, which is shown in Figure 10. Sample
filters may be loaded from a drop-down menu. Users who are logged into the application
may also contribute new filters, which then become available to all users of the application.
Due to the lack of display space and comfortable editing capabilities on mobile phones,
SPARQL Filters may only be created and edited on desktop systems. However, they may
be applied on both mobile and desktop systems.
   A SPARQL Filter is written as a CONSTRUCT query [PS08, 10.2], which returns an RDF
graph (cf. ibid.). The application interprets the result graph as follows:

   • All resources with geo:point predicates are plotted on the map at the provided
      position.

   • Statements with rdfs:label predicates are used for resource labeling according to
      the user’s language choice.

   • Statements with rdf:type predicates are used to select appropriate icons for known
      YAGO categories.

   • Statements with owl:sameAs predicates are optionally used to prevent duplicate
      display of items.

   When the option Limit to map view is checked, the Query Service will add an
appropriate filter on the variable ?point (cf. subsection 9.6). Furthermore, a LIMIT
[PS08, 9.5] is automatically applied to restrict the query to 400 result triples.
   Figure 11 shows the Default filter, an included sample filter which corresponds to the
template that is used internally to rewrite Simple Filters to SPARQL. It shows all resources
that have geographical positions associated using the geo:point predicate, by default
limited to the displayed area. rdfs:label, rdf:type and owl:sameAs predicates are
optionally passed in the result graph.
   The filter “Stations of Berlin’s U7 train line” builds upon the default filter and is shown
in Figure 12. It restricts display to resources that have DBpedia infobox [ABL+ 07, p. 724


                                             23
                                                       6 APPLICATION FEATURES




Figure 8: A full view of a FOAF profile containing data from a multitude of sources.
Colored dots are used to indicate source origins for duplicate facts.




          Figure 9: The Simple Filter Builder Interface in the Filters Panel.



                                          24
                                                                   6 APPLICATION FEATURES




 Figure 10: The SPARQL Filter Builder Interface with the filter “Stations of Berlin’s U7
 train line”.


 1   PREFIX   xsd: <http://www.w3.org/2001/XMLSchema#>
 2   PREFIX   rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 3   PREFIX   rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 4   PREFIX   geo: <http://www.georss.org/georss/>
 5   PREFIX   owl: <http://www.w3.org/2002/07/owl#>
 6   PREFIX   foaf: <http://xmlns.com/foaf/0.1/>
 7   PREFIX   p: <http://dbpedia.org/property/>
 8   PREFIX   yago: <http://dbpedia.org/class/yago/>
 9
10   CONSTRUCT {
11           ?resource   geo:point ?point .
12           ?resource   rdfs:label ?label .
13           ?resource   rdf:type ?type .
14           ?resource   owl:sameAs ?alias
15   }
16   WHERE {
17           ?resource   geo:point ?point .
18
19            OPTIONAL {
20                    ?resource rdfs:label ?label
21            }
22
23            OPTIONAL {
24                    ?resource owl:sameAs ?alias
25            }
26
27            OPTIONAL {
28                    ?resource rdf:type ?type
29            }
30
31            #FILTER (
32            #         Add your filter conditions here!
33            #)
34   }



                               Figure 11: The “Default filter” template.


                                                     25
                                                               6 APPLICATION FEATURES


f.] properties system and line equal to “BVG” 47 and “U7”, respectively.48 rdfs:label
and rdf:type properties were now made mandatory. Figure 14 shows the resulting map
display.
       A third filter “People based_near DBpedia resources” (shown in Figure 13) demon-
strates the flexibility of the CONSTRUCT query form. It plots persons that have indicated
that they are foaf:based_near a DBpedia resources by using the person’s foaf:name as
the item label and its rdf:type for icon display, but taking the position (geo:point) from
the DBpedia resource. Figure 15 shows a map view of Europe with this filter in place,
displaying Semantic Web researchers that have expressed their location using DBpedia49 .
       The researcher Yves Raimond has contributed a filter “Performances” which shows
upcoming concerts that are provided by his DBtune service, based on personalized
recommendations50 . An example result is shown in Figure 16.


6.3      Area-Based Crawling

Because of scalability concerns, DBpedia Mobile initially includes only those DBpedia
datasets that are required to generate the map display, i.e. geo-coordinates, labels and
YAGO classes. To build filters that involve other properties, the full record must be
loaded from DBpedia. This can be done by browsing the resource with Marbles or using
the Crawling Functionality.
       Using the crawling button, a user can request crawling of the resources in the currently
visible area. This loads all data about those resources from DBpedia, as well as Linked
Data associated with them into the cache, making it available for use with filter queries.
       A server-side helper script retrieves up to 200 resources and issues individual discover
requests to the Marbles engine. Marbles then tries to dereference the resource and queries
Sindice51 for related information, as well as Revyu for reviews. In a similar manner as
the Semantic Web Client Library [BGC07], it follows specific predicates found in retrieved
data, such as owl:sameAs and rdfs:seeAlso, for up to two levels in order to gain more
information about the resource and to obtain human-friendly resource labels.


6.4      Content Creation

DBpedia Mobile allows to publish content with attached contextual information directly
from the mobile device. A user may publish his current location attached to a DBpedia
resource, as well as photos and reviews of resources.
  47
     Berlin’s transportation company
  48
     The literals are specified using the en language tag in order to match those used by DBpedia (cf.
[KC04, 6.5.1]).
  49
     Their profiles were cached when Marbles was used to browse metadata of the 5th Annual European
Semantic Web Conference (ESWC 2008), http:// data.semanticweb.org/ conference/ eswc/ 2008/ html
(retrieved 06/09/2008).
  50
     http:// dbtune.org/ (retrieved 06/09/2008).
  51
     http:// sindice.com/ (retrieved 05/24/2008).


                                                 26
                                                                   6 APPLICATION FEATURES




 1   PREFIX   xsd: <http://www.w3.org/2001/XMLSchema#>
 2   PREFIX   rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 3   PREFIX   rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 4   PREFIX   geo: <http://www.georss.org/georss/>
 5   PREFIX   owl: <http://www.w3.org/2002/07/owl#>
 6   PREFIX   foaf: <http://xmlns.com/foaf/0.1/>
 7   PREFIX   p: <http://dbpedia.org/property/>
 8   PREFIX   yago: <http://dbpedia.org/class/yago/>
 9
10   CONSTRUCT {
11           ?resource   geo:point ?point .
12           ?resource   rdfs:label ?label .
13           ?resource   rdf:type ?type .
14           ?resource   owl:sameAs ?alias
15   }
16   WHERE {
17           ?resource   geo:point ?point .
18           ?resource   p:system "BVG"@en .
19           ?resource   p:line "U7"@en .
20           ?resource   rdfs:label ?label .
21           ?resource   rdf:type ?type
22   }



                      Figure 12: The filter “Stations of Berlin’s U7 train line”.




 1   PREFIX   rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 2   PREFIX   rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 3   PREFIX   geo: <http://www.georss.org/georss/>
 4   PREFIX   owl: <http://www.w3.org/2002/07/owl#>
 5   PREFIX   foaf: <http://xmlns.com/foaf/0.1/>
 6
 7   CONSTRUCT {
 8           ?somebody   geo:point ?point .
 9           ?somebody   rdfs:label ?name .
10           ?somebody   rdf:type ?type .
11           ?somebody   owl:sameAs ?alias
12   }
13   WHERE {
14           ?resource   geo:point ?point .
15           ?somebody   foaf:based_near ?resource .
16           ?somebody   foaf:name ?name
17
18            OPTIONAL {
19                    ?somebody rdf:type ?type
20            }
21
22            OPTIONAL {
23                    ?somebody owl:sameAs ?alias
24            }
25   }



                   Figure 13: The filter “People based_near DBpedia resources”.




                                                       27
                                                          6 APPLICATION FEATURES




Figure 14: Specific train lines plotted using the filter “Stations of Berlin’s U7 train line”.




Figure 15: European Semantic Web researchers plotted using the filter “People based_near
DBpedia resources”.




    Figure 16: Recommended nearby concerts shown using the “Performances” filter.



                                            28
                                                                   6 APPLICATION FEATURES


      [BLHL+ 08] extensively discuss the creation of RDF statements by users. Specifically,
they introduce graphs that anyone may edit one a triple level.                    Contrarily, DBpedia
Mobile assigns users their individual graphs that only they can update, and wraps the
triple generation process in user interface dialogs, which dramatically reduces the technical
expertise required to create content.
      When users sign up for a DBpedia Mobile account, they are provided with a
personal resource URI in the form http://beckr.org/DBpediaMobile/users/username,
which is associated with all content created by the respective user. When this URI is
dereferenced, the client is forwarded to the associated User Graph which is located at
http://beckr.org/DBpediaMobile/graphs/username using HTTP 303 See Other [FGM+ 99,
10.3.4] redirection (cf. subsection 8.2). The User Graph contains the user’s current location
as well as the photos taken by him. User Graphs are automatically updated with Marbles,
so that they are available for display and filtering purposes.
      To publish content, the user logs in and opens the Content Creation Panel (depicted
in Figure 17). He then selects the type of information to publish (i.e. position, photo or
review) and chooses a resource to attach the information to. Based on his location, the
nearest DBpedia resource is automatically suggested, as shown in Figure 18.
      A location update is automatically reflected in his User Graph as a triple stating that
he is foaf:based_near the selected resource. In the case of a photo, he is prompted to
upload the image, which is then stored on the server and published in his User Graph
as a foaf:depiction of the selected resource. The User Graph is updated with Marbles
via a load request. In the case of a review, he is presented with a pre-populated review
form for Revyu, which will be directly submitted to Revyu.52 It will become available for
display and querying when the resource is browsed using Marbles53 or the area is crawled
(cf. subsection 6.3).




 Figure 17: The Content Creation Panel.                  Figure 18: The nearest DBpedia resource is
                                                         suggested based on the user’s position.
 52
      For this to work, the user must be logged into Revyu.
 53
      Due to the caching behavior, Revyu may not be queried for reviews if it has been queried previously.



                                                    29
                                                         6 APPLICATION FEATURES


   Figure 19 shows an exemplary DBpedia Mobile User Graph. The user uploaded a photo
of the Brandenburg Gate, which is reflected as a foaf:depiction of the resource http://
dbpedia.org/ resource/ Brandenburg_Gate, and stated that he is located at the sight, which
is reflected as a corresponding foaf:based_near statement. Figure 20 shows a full view
of the DBpedia resource in Marbles, which lists the User Graph URL http:// beckr.org/
DBpediaMobile/ graphs/ chris as a data source and incorporates the user-provided photo
as well as the foaf:based_near statement.
   A user may integrate the position updates he creates using DBpedia Mobile with his
FOAF profile. To do so, he states that the resource URI he uses to refer to himself in
his FOAF profile is identical (owl:sameAs) to his personal resource URI with DBpedia
Mobile. Figure 21 shows the source code of a FOAF profile that uses this technique, and
Figure 22 shows the profile rendered using Marbles, which includes the current location
from the DBpedia Mobile User Graph.




                                            30
                                                                  6 APPLICATION FEATURES



 1   <?xml version="1.0" encoding="UTF-8" ?>
 2   <rdf:RDF (...)>
 3
 4   <foaf:Person rdf:about="http://beckr.org/DBpediaMobile/users/chris">
 5      <foaf:name>Christian Becker</foaf:name>
 6   </foaf:Person>
 7
 8   <foaf:Document rdf:about="http://beckr.org/DBpediaMobile/graphs/chris">
 9      <rdfs:label xml:lang="en">DBpedia Mobile User Graph for Christian Becker</rdfs:label>
10      <foaf:primaryTopic rdf:resource="http://beckr.org/DBpediaMobile/users/chris"/>
11   </foaf:Document>
12
13   <rdf:Description rdf:about="http://dbpedia.org/resource/Brandenburg_Gate">
14      <foaf:depiction rdf:resource="http://beckr.org/DBpediaMobile/userdata/2008-06-12--chris--250px-
             BrandenburgerTorGold.JPG"/>
15   </rdf:Description>
16
17   <rdf:Description rdf:about="http://beckr.org/DBpediaMobile/users/chris">
18      <foaf:based_near rdf:resource="http://dbpedia.org/resource/Brandenburg_Gate"/>
19   </rdf:Description>
20
21   </rdf:RDF>



 Figure 19: An exemplary DBpedia Mobile User Graph contains a foaf:depiction of
 the resource http:// dbpedia.org/ resource/ Brandenburg_Gate and states that the user is
 foaf:based_near the resource.




 Figure 20: A full view of the resource http:// dbpedia.org/ resource/ Brandenburg_Gate
 in Marbles, which incorporates a user-provided photo and a foaf:based_near statement
 from a DBpedia Mobile User Graph.



                                                   31
                                                                  6 APPLICATION FEATURES




 1   <rdf:RDF
 2         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 3         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 4         xmlns:foaf="http://xmlns.com/foaf/0.1/"
 5         xmlns:owl="http://www.w3.org/2002/07/owl#">
 6   <foaf:PersonalProfileDocument rdf:about="">
 7     <foaf:maker rdf:resource="http://beckr.org#chris"/>
 8     <foaf:primaryTopic rdf:resource="http://beckr.org#chris"/>
 9   </foaf:PersonalProfileDocument>
10   <foaf:Person rdf:about="http://beckr.org#chris">
11           <foaf:name>Christian Becker</foaf:name>
12           <foaf:schoolHomepage rdf:resource="http://www.fu-berlin.de"/>
13           (...)
14           <owl:sameAs rdf:resource="http://beckr.org/DBpediaMobile/users/chris"/>
15   </foaf:Person>
16   </rdf:RDF>



 Figure 21: A DBpedia Mobile account is integrated into a FOAF profile using an
 owl:sameAs link.




 Figure 22: The above FOAF profile rendered using Marbles includes data from the
 DBpedia Mobile User Graph that states that the user is based near the DBpedia resource
 “Brandenburg Gate”.




                                                   32
7     Architecture Overview

7.1   System Architecture

The solution described in section 6 follows a client-server architecture (cf. [Sin92]) in order
to place query processing and data storage activities outside the mobile device, based on
the following considerations:

    • The application’s browsing (cf. subsection 6.1), filtering (cf. subsection 6.2) and
      crawling (cf. subsection 6.3) functionalities touch on large amounts of data that must
      be retrieved from the respective services and then be cached locally, for instance the
      datasets participating in the Linking Open Data project. These tasks are much more
      suitable for a server than a client, even more so when mobile clients with sparse
      resources are involved.

    • Considering the creation of content by users (cf. subsection 6.4), the sharing of
      content between multiple users can be much better accomplished by a server.

    The solution’s core functionalities are implemented in the web application DBpedia
Mobile (cf. section 8), which is compromised of a client-side JavaScript application and
supporting server-side web services. The server-side Marbles engine (cf. section 9) provides
display and database capabilities for DBpedia Mobile. It was spun off as a standalone
component because it was deemed suitable as a generic Linked Data browser beyond the
examined use case.
    By loosely coupling DBpedia Mobile and Marbles, each of them may be replaced
with relatively low effort: DBpedia Mobile could benefit from using a large-scale cache
like Sindice as its data source, and Marbles’ services could suitably be used by other
Semantic Web clients. Data retrieval from Marbles is based on SPARQL CONSTRUCT queries
with RDF serialization, and Marbles’ data display and management functionalities are
accessed using lightweight Representational State Transfer (REST) [FT02] web services
(cf. subsection 9.7).


7.2   Data Model

This work required the provision of geographical coordinates and was enhanced with
addresses of homepages as well as photos for items. Following the approach devised in
subsection 5.2, geographical coordinates and homepages were extracted from Wikipedia
as RDF, and a Linked Data wrapper was created to provide photos from Flickr for
DBpedia concepts. These were integrated into DBpedia, so that their data can be found
by dereferencing DBpedia resources. The implementations are discussed in section 10.




                                              33
8         DBpedia Mobile
DBpedia Mobile is a web application designed for mobile devices that allows users to
discover, search and publish Linked Data pertaining to their current physical environment
using their mobile phone.


8.1        Architecture and Technology Selection

This section introduces DBpedia Mobile’s architecture and the considerations involved.
Following section 7, a client-server architecture is used to facilitate sharing of data among
multiple users. Functionality is placed on the client side wherever it is feasible in order to
obtain a high responsiveness to user input and to reduce network roundtrips.


8.1.1        Mobile Development Frameworks

Multiple types of frameworks permit the creation of applications for modern mobile phones:


         Operating System Software Development Kits (SDKs) offer far-reaching
access to a phone’s individual features. These include Android54 , iPhone SDK55 , Symbian56
and Windows Mobile57 .


         Runtime Environments such as Java Platform, Micro Edition58 , Flash Lite59 and
Silverlight Mobile60 offer standardized interfaces across a large number of heterogenous
devices.


         Web Applications run on mobile web browsers such as Safari61 , Opera Mobile62 ,
Minimo63 and Internet Explorer Mobile64 that increasingly feature high coverage of W3C
Recommendations such as HTML, Document Object Model (DOM) [LH04] and Cascading
Style Sheets (CSS) [BÇHL07] and support the scripting language JavaScript. As a result,
rich web applications become possible on mobile phones.
    54
     http:// www.openhandsetalliance.com/ android_overview.html (retrieved 05/24/2008).
    55
     http:// developer.apple.com/ iphone/ (retrieved 05/24/2008).
  56
     http:// www.symbian.com/ (retrieved 05/24/2008).
  57
     http:// www.microsoft.com/ windowsmobile/ default.mspx (retrieved 05/24/2008).
  58
     http:// java.sun.com/ javame/ index.jsp (retrieved 05/24/2008).
  59
     http:// www.adobe.com/ products/ flashlite/ (retrieved 05/24/2008).
  60
     http:// silverlight.net/ learn/ mobile.aspx (retrieved 05/24/2008).
  61
     http:// www.apple.com/ iphone/ features/ index.html#internet (retrieved 05/24/2008).
  62
     http:// www.opera.com/ products/ mobile/ (retrieved 05/24/2008).
  63
     http:// www.mozilla.org/ projects/ minimo/ (retrieved 05/24/2008).
  64
     http:// www.microsoft.com/ windowsmobile/ microsoftprograms/ iemobile.mspx             (retrieved
05/24/2008).




                                                  34
                                                                          8 DBPEDIA MOBILE


  In the following, the identified framework types are analyzed regarding the complexity
of realizing major application functionalities with them, the extent to which they provide
access to position information, as well as the number of devices that they support. Table 2
summarizes the results.


Complexity


      Map Interface. Because DBpedia Mobile is a map-centric application, a map
interface is a central requirement. There is no known operating system SDK that includes
a ready-to-use map interface, so that the map interface would have to be implemented
from the ground up. When using Java, related projects (e.g. GMapViewer65 , j2memap66 )
might be used as a foundation. There are multiple established mapping APIs available for
web applications, such as Google Maps (cf. [Pro08a] for a comprehensive listing), which
generally also integrate the vendor’s imagery services. Accordingly, a map display can
be implemented very quickly using a web application framework. Furthermore, there is a
large community of developers who freely offer both generic and map-specific user interface
controls (e.g. Mapki67 , Google Maps API Group68 ).
      An evaluation of major map APIs on mobile web browsers (cf. Appendix C) showed
that the browsers Opera Mobile and Safari were able to access most APIs. Announcements
by browser vendors Mozilla [Sch07b] and Microsoft [Mic08e] suggest that their browsers
will soon offer a similar level of compatibility.


      Content Display. Subsection 5.2 anticipates the display of diverse content such as
text, listings and photos, which should be shown in a user-friendly layout. Operating
system SDKs and runtime environments provide rich text and HTML controls for these
purposes (e.g.     cf.   [UIQ07, Mic08d]), however they can not match the degree of
functionality and ease of integration that is achieved by exploiting a browser’s internal
display capabilities from within a web application.


      RDF Parsing. Because RDF is used for data exchange (cf. section 7), the client
should feature RDF parsing capabilities. RDF parsers are readily available for C++, Java
and JavaScript (cf. [BW07, W3C08c]). It is assumed that the integration of such parsers
should pose little effort when using runtime environments and web applications. However,
when making use of third-party libraries in operating system SDKs, code must often be
adapted due to limitations of the bundled standard libraries (e.g. cf. [Sym04, Ło08]).
 65
    http:// www.sreid.org/ GMapViewer/ (retrieved 05/24/2008).
 66
    http:// j2memap.8motions.com/ (retrieved 05/26/2008).
 67
    http:// mapki.com/ wiki/ Main_Page (retrieved 05/24/2008).
 68
    http:// groups.google.com/ group/ Google-Maps-API (retrieved 05/24/2008).




                                                 35
                                                                               8 DBPEDIA MOBILE


Access to Position Information. Operating system SDKs often provide positioning
libraries that allow a third-party application to read the user’s position by means such as
the phone’s integrated GNSS receiver (e.g. [Nok04, Mic08c]), as does the Java Platform
(cf. [Nok06a]). Web applications, however, currently have no direct access to a phone’s
location information. This restriction will likely be overcome in the near future: HTTP-
based transmission mechanisms for geographic locations have been proposed in [DKK07,
Kos04] and are currently subject of the Internet Engineering Task Force (IETF) Geographic
Location/Privacy (geopriv) charter69 . Until such a transmission mechanism is in place, a
possible work-around is to implement the positioning functionality in a helper application
using an appropriate runtime environment or SDK, which then interfaces with the web
application.

Number of Supported Devices. It is preferential to choose a platform that is
supported by many client devices, because the application may then be used independently
of a specific phone model or series. While an application written using an operating
system SDK is bound to work on a constrained set of devices (e.g. cf. [Sym07, Mic08b]),
runtime environments such as Java ME are supported across much more manufacturers
and platforms (e.g. cf. [Sun08]). A web application can be accessed on a even wider
range of devices — [Nok06b] (as cited by [Loc06, p. 3]) predicts that “[v]irtually all mobile
subscribers will be [web] browser enabled by 2010, with more than 20% having full web
browsing capabilities”.

  The web application framework was chosen as the development framework because
it allows to realize the application with limited complexity and provides a high level of
portability. However, it currently does not provide access to position information, which
must be retrieved by means of a helper application.

8.1.2      Target Device and Platform

The following requirements were specified for the target device and its underlying software
platform:

      • The device must have a built-in GPS receiver or support an external GPS receiver.

      • It must feature data services so that the application can communicate with the server.

      • It must have adequate CPU resources, display and input capabilities to host a map-
        centric application.

      • The software platform must support third-party applications and provide them with
        access to positioning data.
 69
      http:// www.ietf.org/ html.charters/ geopriv-charter.html (retrieved 05/24/2008).


                                                     36
                                                                           8 DBPEDIA MOBILE


                         Operating     System           Runtime                Web Applications
                         SDKs                           Environments
 Complexity of re-       High: Custom im-               Moderate: Exist-       Very low: Existing
 alizing a Map In-       plementation.                  ing source to build    APIs.
 terface                                                upon.
 Complexity     of       Moderate:    Rich-             Moderate:     Rich-    Very low:
 realizing Content       text and HTML con-             text and HTML con-     Browser’s display ca-
 Display                 trols.                         trols.                 pabilities can be ex-
                                                                               ploited.
 Complexity of re-       High: Parsers must             Low:        Existing   Low: Existing im-
 alizing RDF Pars-       be adapted.                    implementations for    plementations.
 ing                                                    Java.
 Access to Position      Yes: Using [Nok04,             Yes: Using [Nok06a]    No
 Information             Mic08c]
 Number of Sup-          Moderate                       High                   Very High
 ported Devices


Table 2: Evaluation of mobile development frameworks regarding the complexity of
realizing major functionalities with them, access to position information and the number
of supported devices.

      The o2 Xda orbit 2, which features a built-in GPS receiver, a 400 Megahertz (MHz)
processor, a Quarter Video Graphics Array (QVGA) (320 × 240 pixels) touch screen and
Third Generation (3G) data services (cf. [O08]) was chosen as the target device. It runs
the Windows Mobile 6 Professional operating system (cf. [O08]), which supports third-
party development (cf. [Mic08f]). Notably, the GPS Intermediate Driver [Mic08c] provides
third-party applications with access to positioning data from GPS receivers.


8.2     Web Application

This section discusses the implementation of the DBpedia Mobile web application. It will
first introduce the client- and server-side components and then illustrate their interactions.
      The DBpedia Mobile web application consists of a client-side JavaScript application
that is supported by a set of server-side web services. The majority of content elements
are specified in HTML, and CSS is used to control their presentation. Server-side services
follow a lightweight REST architecture (cf. [FT02, PZL08]). They are implemented using
PHP: Hypertext Preprocessor (PHP)70 running on an Apache HTTP Server71 . A MySQL72
database is used to store login information and user-generated triples and filters.


8.2.1     Client Components

The client side is composed of the following components:
 70
    http:// www.php.net/ (retrieved 05/28/2008).
 71
    http:// httpd.apache.org/ (retrieved 05/31/2008).
 72
    http:// www.mysql.com/ (retrieved 05/24/2008).


                                                   37
                                                                          8 DBPEDIA MOBILE


      Framework (geoBrowser.js). The framework initializes the other components and
handles interaction between them. It furthermore implements the Settings Panel and the
Login functionality (cf. section 6).

      Map Client (map.js). This component integrates a map control using the Google
Maps API73 , which is populated with data retrieved as RDF triples from the Query Service
(cf. below). It also implements the invocation of the Crawling Service (cf. below).

      Filter Builder (filters.js). The Simple and SPARQL Filter Builders discussed in
subsection 6.2 are implemented by this component. The Simple Filter Builder uses DOM
Manipulation to implement dynamic addition and modification of filters using template
objects provided in the HTML code. The SPARQL Filter Builder dynamically loads filters
from the Filter Service (cf. below).

      Content Creation Component (create.js). This component implements the
functionalities described in subsection 6.4. It derives the nearest resource from the Map
Client or asks the user to select a resource. It integrates the photo service for uploads.
Once all information has been provided, a triple is built, which is submitted to the User
Graph service (cf. below).

      User Interface (ui.js). Functionalities for the modal display of the Filter, Settings
and Content Creation Panels, as well as message boxes and banners are provided by
this component. It allows to load external content into an overlay frame and provides
interfaces to allow this content to interact with the application. This functionality is used
for summary views, account creation and login, photo uploads and review authoring.

  The client components make use of the following third-party components:

      • The Prototype JavaScript framework74 is used to reduce the complexity of DOM
        manipulation and the addressing of multiple browsers.

      • The Google Maps API is used for map display. It was chosen because it was broadly
        supported by the tested mobile browsers (cf. Appendix C) and because there is
        a broad range of available documentation and enhancements by third parties (e.g.
        Mapki75 , Google Maps API Group76 ).

      • GxMarker277 is used to draw the resource markers.             It was modified for faster
        redrawing and extended browser compatibility.
 73
    http:// code.google.com/ apis/ maps/ (retrieved 05/24/2008).
 74
    http:// prototypejs.org/ (retrieved 05/27/2008).
 75
    http:// mapki.com/ wiki/ Main_Page (retrieved 05/24/2008).
 76
    http:// groups.google.com/ group/ Google-Maps-API (retrieved 05/24/2008).
 77
    http:// code.toeat.com/ gxmarker.html (retrieved 05/27/2008).


                                                 38
                                                                                8 DBPEDIA MOBILE


       • RDF/XML results are parsed using the Jibbering RDF Parser78 . It was modified
         to handle concurrent requests, to support variable prefixes for the rdf namespace as
         well as improved for speed and browser compatibility.

       • Control.Tabs79 is used in the Filter Builder to implement the switching between
         Simple and SPARQL Filters.


8.2.2      Server-Side Web Services

The following web services provide complementary functionality to the client-side applica-
tion:


       Query Service (query.php). Acting as an intermediary between the client-side ap-
plication and Marbles’ SPARQL endpoint (cf. subsection 9.7), this service builds SPARQL
CONSTRUCT [PS08, 10.2] queries from provided filter data and bounding coordinates of the
map view, which are issued to the endpoint. The RDF/XML [Bec04] query results are
transparently passed through. The Query Service is located on the server side in order
to provide better control over the queries that are issued to the SPARQL endpoint and
because the rewriting operations were deemed easier to implement using PHP rather than
client-side JavaScript.


       User Graph Service (usergraph.php). This service renders User Graphs as
RDF/XML using the RDF API for PHP (RAP)80 and accepts triples to be added to
them. Only the last location triple is delivered in the rendering of the User Graph.


       Photo Service (photos.php). Initiated by the Content Creation Component, this
service provides and processes a HTML Form [RHJ99, 17] to upload images. Photos are
stored on the server; their file names are reported back to the Content Creation Component
so that it can reference them in RDF triples.


       Review Service (review.php). For a given resource, this service generates a pre-
populated HTML Form that may be used to submit a review about that resource to Revyu.


       Crawling Service (discovery.php). Initiated by the client-side Crawling Compo-
nent with a given geographic area, this service finds all resources in the area and, for each
resource, issues a discover request to Marbles (cf. subsection 9.7).
  78
     http:// www.jibbering.com/ rdf-parser/ (retrieved 05/27/2008).
  79
     http:// livepipe.net/ projects/ control_tabs/ (retrieved 05/29/2008).
  80
     http:// www4.wiwiss.fu-berlin.de/ bizer/ rdfapi/ (retrieved 05/31/2008).




                                                    39
                                                                           8 DBPEDIA MOBILE


      SPARQL Filter Storage Service (filters.php). This service provides a list of
available SPARQL Filters and allows for the individual retrieval of the filter code. It
furthermore allows users to contribute, modify and delete filters.


      Account System (account.php). The login and sign up functionalities are imple-
mented by this service, which provides and processes the related HTML Forms. Login
states are kept in PHP Sessions81 using HTTP Cookies [KM00], which are utilized by the
User Graph, Photo and SPARQL Filter Storage services to identify the user.


  Figure 23 shows the schema of the MySQL database that is used by the web
services: Login information is stored in the table Users, while the tables Triples and
SparqlFilters allow storage of user-generated triple data and SPARQL Filters. The full
schema is exported in DBPMSupport.sql which is located in the GeoBrowser subdirectory.


                                  Triples
                               user   varchar (255)
                               subj   varchar (255)
                               pred varchar (255)
                               obj    varchar (255)              Users
                               time   timestamp
                                                              user   varchar (255)
                                                              pass   varchar (255)

                           SparqlFilters                      name   varchar (255)

                          id            int
                          user          varchar (255)
                          title         varchar (255)
                          text          text (65535)
                          limitView     tinyint




                     Figure 23: Database schema of the support database.



8.2.3     Service Initialization
                    Powered by yFiles


When the user accesses the service at http:// beckr.org/ DBpediaMobile, the PHP script
index.php is executed.82 The script returns the HTML markup with dynamically inserted
JavaScript code to provide the configured location of the Marbles installation, as well as
an estimation of the the user’s location based on his IP address. The latter is determined
using the GeoLite City database83 .
      DBpedia Mobile is configured using the configuration file DBpediaMobile.properties.
It allows to specify the address of the Marbles installation, access settings for the
 81
    http:// www.php.net/ manual/ en/ intro.session.php (retrieved 05/31/2008).
 82
    This behavior is based on a directory index configuration [Apa08] defined by the PHP installation.
 83
    http:// www.maxmind.com/ app/ geolitecity (retrieved 05/27/2008).



                                                        40
                                                                       8 DBPEDIA MOBILE


MySQL database and the data directory to be used to store user-provided photos. A
documented sample configuration is provided in DBpediaMobile.properties.sample in
the GeoBrowser subdirectory.


8.2.4    Map Display Mechanism

The map view is built by the Map Client from RDF triples that are obtained by sending the
currently visible area as well as language and filter settings to the Query Service. This data
is serialized by the Filter Builder and provided in the URL’s query component [BLFM05,
3.4.] as key-value pairs, using Percent Encoding [ibid., 2.1.] where required. Table 3 lists
the accepted parameters.


Parameter Format. For Simple Filters, a comma-separated list of filter conditions is
specified in the parameter conditions. Figure 24 shows the syntax of the condition
serialization in the Extended Backus–Naur Form (EBNF) [Int96] notation of [BPSM+ 06,
6]. The language that resource labels should be returned in may optionally be indicated
with the parameter lang in the form of a language tag [Alv01], such as “ de” for German
(cf. [Uni07]). If the field is omitted, the value defaults to “ en” for English labels (cf. ibid.).
In order to limit resources to a specific geographic area, a bounding box may optionally
be specified by its north-east and south-west coordinates using the parameters ne_lat,
ne_long, sw_lat and sw_long.
    For SPARQL Filters, the filter code is provided in the parameter query. The bounding
box parameters are applicable here as well. The filter code is already provided in the
CONSTRUCT query form (cf. subsection 6.2) and is rewritten to include the geographical
restriction, as well as a LIMIT [PS08, 9.5] to restrict the maximum number of result triples
to 400. This restriction is in place in order to prevent a single query from consuming
abnormally high server resources.

1   conditions      ::=   condition ( ’,’ condition )*
2   condition       ::=   numericCondition | typeCondition
3   numericCondition::=   numericField numericOperator numericValue
4   numericField    ::=   ’rating’ | ’population’ | ’stories’
5   numericOperator ::=   ’=’ | ’>’ | ’>=’ | ’<’ | ’<=’
6   numericValue    ::=   ’-’? [0-9]+ ( ’.’ [0-9]+ )?
7   typeCondition   ::=   ’type’ ’=’ yagoClass ( ’|’ yagoClass )*
8   yagoClass       ::=   [A-Za-z0-9]+



Figure 24: Simple Filter condition grammar expressed using Extended Backus–Naur Form.



Data Presentation. The map client plots all resources with geo:point predicates on
the map using an icon, and optionally a label. rdfs:label predicates are used as resource
labels, and rdf:type predicates are used to find suitable icons based on an internal


                                               41
                                                                            8 DBPEDIA MOBILE


         Simple Filters
           Parameter                          Description
           conditions                         Serialization of the filter conditions (cf. Fig-
                                              ure 24)
           lang (optional)                    The language of the resource labels to return,
                                              expressed as a language tag [Alv01]
         SPARQL Filters
           Parameter               Description
           query                   The SPARQL Filter query
         Bounding Box (optional; applies to both filter types)
           Parameter               Description
           ne_lat                  Latitude of the north-east corner
           ne_long                 Longitude of the north-east corner
           sw_lat                  Latitude of the south-west corner
           sw_long                 Longitude of the south-west corner


               Table 3: Parameters accepted by the Query Service (query.php).

 mapping of frequently found YAGO categories to icon files. Because a resource may have
 multiple types, mappings are associated with priority levels, and the application selects
 the icon with the highest priority from the applicable icons. Figure 25 shows an excerpt
 of the mapping. A hotel may have both Hotel103542333 and Building102913152 types,
 but the hotel type is given a higher priority because it is more specific. In the case that
 no known type is found, a default icon (red-dot.png) is shown.

 1   var icons = {
 2                   (...)
 3                   ’http://dbpedia.org/class/yago/StockExchange104323026’: [3, ’exchange.png’],
 4                   ’http://dbpedia.org/class/yago/Airport102692232’: [3, ’plane_002.png’],
 5                   ’http://dbpedia.org/class/yago/Hotel103542333’: [3, ’lodging_002.png’],
 6                   ’http://dbpedia.org/class/yago/Hospital103540595’: [3, ’hospitals_002.png’],
 7                   ’http://dbpedia.org/class/yago/Attraction111426530’: [2, ’icon47_004.png’],
 8                   ’http://dbpedia.org/class/yago/Oeuvre103841417’: [2, ’icon47_004.png’],
 9                   ’http://dbpedia.org/class/yago/Building102913152’: [1, ’icon21_003.png’],
10                   ’http://dbpedia.org/class/yago/Square113878634’: [2, ’square.png’],
11                   ’http://dbpedia.org/class/yago/Crossing100297532’: [2, ’crossing2.png’],
12                   (...)
13                   ’’: [0, ’red-dot.png’]
14   }



 Figure 25: Commonly used YAGO categories are mapped to icons using priority levels in
 constants.js.



 8.2.5      Content Creation Mechanism

 The Content Creation Component walks the user through the process of publishing content
 with attached context (cf. subsection 6.4). It thereby draws upon the Map Client to
 suggest the nearest resource based on the currently loaded items. The overlay window
 functionality is used to integrate the Review Service as well as the Photo Service, which uses

                                                    42
                                                                             8 DBPEDIA MOBILE


the JavaScript callback method handlePhotoUpload to resume processing upon successful
transfer.
      Once all information has been provided, the Content Creation Component generates
RDF triples and submits them to the User Graph Service. The latter then issues a load
request to Marbles (cf. subsection 9.7) for the user’s graph URI in order to reflect the
update in its cache.
      User Graph Data is published as Linked Data (cf. section 4): HTTP URIs are used to
name users and to reference DBpedia resources. The user’s URI may be dereferenced to
obtain the content he created using DBpedia Mobile, and DBpedia resource URIs may be
followed to learn more about the resources to which content pertains.
      While a URI may be used to universally identify a DBpedia Mobile user, the user is a
human being who can not be accessed over the internet in a technical sense (cf. [BLFM05,
1.1.]); in this case by dereferencing his URI. However, information about him may be
stored in a web document, which is a distinct resource. [JW04, 2.2.] denominates such
documents information resources which are characterized by the fact “that all of their
essential characteristics can be conveyed in a message” [ibid.].
      An information resource may be served when a non-information resource is derefer-
enced by means of Hash URIs and 303 URIs Forwarding (cf. [SC08]). The first approach
assigns URIs with fragments [BLFM05, 3.5] which are stripped off for dereferencing,
meaning that they are never dereferenced directly. The second approach is based on a W3C
Technical Architecture Group (TAG) resolution [W3C07b, httpRange-14] that recommends
the usage of HTTP status codes [FGM+ 99, 6.1.1] in the 2xx range for information resources,
and the code 303 for resources that could be any resource. HTTP 303 See Other redirection
[FGM+ 99, 10.3.4] is accordingly used to redirect an user agent requesting a non-information
resource to an information-resource describing it.
      DBpedia Mobile User Graphs are served using 303 URIs Forwarding, because this
approach provided more concise user URIs. The forwarding is implemented using the
mod_rewrite84 module for Apache HTTP Server.
      Figure 26 shows the related module configuration, which is located in the file .htaccess
of the GeoBrowser subdirectory. Line 3 causes requests to http://beckr.org/DBpediaMobile/
users/username to be redirected to http://beckr.org/DBpediaMobile/graphs/username
with the status code 303 See Other. Line 4 associates that URL with usergraph.php, the
User Graph Service, and passes the requested user name in the URL’s query part.


8.3      Positioning Helper

A supplemental launcher application for Windows Mobile 6 Professional devices may be
used to initialize DBpedia Mobile with the user’s current location as retrieved from a
 84
      http:// httpd.apache.org/ docs/ 2.2/ mod/ mod_rewrite.html (retrieved 05/31/2008).



                                                    43
                                                                            8 DBPEDIA MOBILE


1    RewriteEngine on
2    RewriteBase /DBpediaMobile/
3    RewriteRule ^users/(.*)                graphs/$1                      [R=303,L]
4    RewriteRule ^graphs/(.*)               usergraph.php?user=$1          [L,QSA]


Figure 26: The mod_rewrite configuration in GeoBrowser/.htaccess implements 303 See
Other redirection from user to graph URIs and maps the latter to usergraph.php.


built-in or externally connected GPS receiver.
         Upon launching, the application initializes the GPS receiver to obtain position
information, which may take several minutes. Once position information is available, the
satellite-derived time, latitude and longitude are displayed, as shown in Figure 27.




                      Figure 27: The positioning helper has located the user.

         The user may now launch DBpedia Mobile by selecting the Go button. This will open
the default web browser with the service URL specified in the lower half of the screen85 ,
which is extended with a query component (cf. [BLFM05, 3.4]) that indicates the user’s
position using the key-value pairs lat and long.
         In the case that positioning is unsuccessful or pending, the button is labeled Go (No
GPS). In this case, the application may be launched without position parameters; the user
may then resort to IP positioning (cf. section 6).
         Selecting the second button Menu opens a popup-menu with the options Hide to put
the helper application into the background, and Exit to quit it.
         The positioning helper is implemented in C++ as a native application for Windows
Mobile 6 Professional, using the related SDK86 . The class CGPSLauncherDlg implements
the main dialog with the aforementioned functionality. It has a CGPSClient member
that provides a wrapper around the Windows Mobile GPS Intermediate Driver [Mic08c]
    85
     The URL field is pre-populated with the URL of DBpedia Mobile’s public installation at http:// beckr.
org/ DBpediaMobile/ , which may be changed for testing purposes.
  86
     http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-
3D48091A390B&displaylang=en (retrieved 05/27/2008).



                                                   44
                                                             8 DBPEDIA MOBILE


and notifies its parent whenever position information becomes available (using the
CGPSObserver interface).
   The application is bundled as the cabinet file DBpediaMobile.cab, which includes
configurations to install and uninstall the application on a mobile device. The file is
located in the GPSLauncher subdirectory.




                                           45
9     Marbles Linked Data Engine
The Marbles Linked Data Engine is a server-side application that caches Linked Data from
the Web which may then be rendered and queried. Acting as a Linked Data browser, it
formats content for traditional XHTML clients. In the default display mode, colored dots
are used to correlate the origin of displayed data with a list of data sources, hence the
name Marbles.


9.1     Architecture and Technology Selection

9.1.1    Local Replication and Query Federation

Subsection 5.2 outlines an approach to geospatial integration that uses data from multiple
online data sources to answer a query. This can be realized by means of local replication,
where data from all sources is replicated locally in a prior step, or query federation, where
query fragments are issued to the data sources and results are then integrated into a single
result (cf. [BC07, 3.2]).
    Query federation is advantageous where the data provider does not permit data
replication, or where it is infeasible due to large amounts of data or frequent updates (cf.
[SVHB04, p. 631]). Contrarily, it creates a dependence on the availability of third-party
services (cf. [SAL+ 96, p. 48]). Where joins involve multiple data sources, join computation
order must be optimized in order to minimize overall response time (cf. [SVHB04, p. 635]).
This often requires a priori knowledge about the data from the involved sources (e.g. cf.
[SVHB04, p. 633], [Qui06, Service Descriptions], [ISW07]).
    Preliminary tests with two currently available distributed RDF querying solutions did
not yield satisfactory results: DARQ [Qui06] required explicit description of data source
contents, which is infeasible for heterogenous datasets such as DBpedia. Distributed
SPARQL [ISW07] was lacking optimizations at the time of the analysis and executed
queries in a very inefficient manner, resulting in long response times that were deemed
unacceptable for the user-facing application described in section 6.                   Accordingly a
replication-based approach was chosen.


9.1.2    Database Layout

Because of performance considerations87 , the local replication was limited to datasets that
were required in order to provide geospatial entry points to the Semantic Web.
    These entry points may be used to discover further content as needed, which may
then be integrated into the database. For example, Tabulator [BLCC+ 06] implements
semi-automatic discovery by following rdfs:seeAlso links for resources that are accessed
  87
     The Linking Open Data project alone features over two billion triples (cf. [W3C08f]), which exceeds
the capabilities of most available triple stores (e.g. cf. [W3C08b]).



                                                  46
                                                      9 MARBLES LINKED DATA ENGINE


by users (cf. [ibid., p. 11]). [BGC07] extends this technique to perform an iterative
discovery. The database may also be pre-populated using crawling mechanisms (e.g. cf.
subsection 6.3).
       Quad concepts such as Named Graphs [CBHS05] add a fourth element to RDF triples in
order to relate them to specific graphs (cf. [CBHS05, p. 248]), allowing to track provenance
when data is syndicated from multiple sources (cf. ibid., p. 247). Marbles uses the Named
Graph mechanism to distinguish between pre-loaded base data and cached data, where the
latter may be selectively deleted and refreshed as required.


9.1.3      RDF Triple Storage

RDF storage capabilities are provided by many semantic web toolkits, often in conjunction
with databases such as MySQL (cf. [BW07, W3C08c]). In order to find a platform for
RDF storage that would provide minimal response times for the application, a benchmark
[Bec08] of three RDF stores was performed with varying store configurations. These RDF
stores were selected based on their ability to support large datasets such as DBpedia, the
SPARQL query language, Named Graphs, as well as means to implement owl:sameAs
inference in order to allow easy aggregation of statements about a given resource (cf.
[Bec08]).
       The five queries tested the selection of small parts of information from a large dataset
using varying levels of joins and constraints. Two queries had geospatial entry points, i.e.
they requested specific information about resources in a given geographic area. The best
performance was exhibited by OpenLink Virtuoso Open-Source Edition88 , especially for
the geospatial queries (cf. [Bec08, 6.4 f.]).
       Base data was accordingly initially stored in a Virtuoso store, but due to its insufficient
support for owl:sameAs inference (cf. [Sou07]), cached data was stored with a OpenRDF
Sesame89 Native Store, which provided relatively good benchmark results (cf. [Bec08]) and
was supported by the SIMILE Fresnel Engine. The introduction of Relational Database
Management System (RDBMS) storage in Sesame 2.1 allowed to use a MySQL database
for the underlying storage, which had native provisions for geospatial data90 . This enabled
efficient geospatial searches with Sesame91 , so that a single store could host both base and
cached data, allowing filters (cf. subsection 6.2) to address both datasets. The related
implementation is discussed in subsection 9.6.
  88
    http:// virtuoso.openlinksw.com/ wiki/ main/ (retrieved 06/12/2008).
  89
    http:// openrdf.org/ (retrieved 06/02/2008).
 90
    http:// dev.mysql.com/ doc/ refman/ 5.1/ en/ spatial-extensions.html (retrieved 06/02/2008).
 91
    These were previously not possible; simple queries with geospatial entry points took longer than a
minute using the Sesame Native Store (cf. [Bec08, 6.4 f.])




                                                 47
                                                        9 MARBLES LINKED DATA ENGINE


9.2      Component Overview

Marbles is implemented as a Java Servlet using the Java Platform, Enterprise Edition92
on the Apache Tomcat Servlet Container93 . It consists of the following packages:

       Base Components (de.fuberlin.wiwiss.marbles). This package contains the
Marbles Servlet (MarblesServlet), an owl:sameAs inferencer (SameAsInferencer), a
file reader with transparent parameter replacement that is used to support parame-
ters in Fresnel configuration files (ParamReader), as well as an extended version of
Sesame’s RDF/XML Writer that aims to prevent the output of redundant statements
(RDFXMLWriterUnique).

       Loading (de.fuberlin.wiwiss.marbles.loading). The classes of this package are
used to retrieve content from the Web. Classes from the Semantic Web Client library
[BGC07] were adapted to the Sesame framework and to perform retrieval using the
Apache Commons HttpClient94 . A CacheController manages access to cached data. A
SpongerProvider allows to utilize the Sponger functionalities of a local Virtuoso Server
installation, which allow RDF extraction from a multitude of formats including GRDDL,
RDFa and Microformats (cf. [Ope08g]).95

       Data Providers (de.fuberlin.wiwiss.marbles.dataproviders). The classes in
this package supply data for a given URI from individual web sources. Based on the
interface DataProvider and its derivation SPARQLProvider, the class RevyuProvider
provides reviews from Revyu, and the class SindiceProvider provides information found
using the search engine Sindice.

  Marbles uses the following third-party components:

       • OpenRDF Sesame is used as the RDF framework and for triple storage; the latter in
         conjunction with a MySQL database. Its RDBMS storage capabilities were enhanced
         to support inference96 , as well as to support storage and querying of geospatial points
         using MySQL Spatial Extensions (cf. subsection 9.6). Furthermore, minor bugs were
         corrected, and query processing was significantly sped up for the application’s use
         cases.

       • The SIMILE Fresnel Engine97 is used to generate specific views of resources (cf.
  92
     http:// java.sun.com/ javaee/ (retrieved 05/24/2008).
  93
     http:// tomcat.apache.org/ (retrieved 05/24/2008).
  94
     http:// hc.apache.org/ httpclient-3.x/ (retrieved 05/24/2008).
  95
     This feature is currently not enabled in the public installation because it was not necessary for the
main use cases and introduced an additional layer of complexity.
  96
     This work was contributed to the authors of Sesame and will be integrated into an upcoming Sesame
release.
  97
     http:// simile.mit.edu/ wiki/ Fresnel (retrieved 06/02/2008).


                                                   48
                                                            9 MARBLES LINKED DATA ENGINE


         subsection 9.4). It was extended to support FSL Selectors [Pie05] for the selection
         of properties inside fresnel:PropertyDescription blocks, to provide provenance
         information for individual triples as well as a list of sources, to accept inferred
         statements, to display blank nodes [KC04, 6.6], to provide owl:sameAs aliases for
         resources, to generate resource labels using a set of pre-defined predicates98 and to
         output of inverse relations. The performance was optimized for the application’s use
         cases.

       • IsaViz FSL99 provides FSL selection capabilities to SIMILE Fresnel.           Minor
         modifications include the acceptance of inferred triples.

       • The SAXON XSLT processor100 is used to convert Fresnel trees produced by the
         SIMILE Fresnel Engine into XHTML documents based on XSL Transformations
         (XSLT) [Kay07] style sheets (cf. subsection 9.4).


9.3       Dereferencing and Caching

When provided with the URI of a resource to display, Marbles tries to dereference it.
Marbles then follows links with specific predicates such as owl:sameAs and rdfs:seeAlso
that are found in retrieved data101 , in order to gain more information about a resource
and to obtain human-friendly resource labels.
       While Marbles waits up to 20 seconds to retrieve the resource that was requested to be
displayed, it only waits for up to three seconds to retrieve data from followed links before
generating the Fresnel rendering for the client, in order to provide high responsiveness.
However, this will not interrupt the retrieval thread. Once the data has been obtained, it
will be stored in the cache and will be available for subsequent requests.
       Marbles caches the data retrieved from each URL in an individual graph that is
identified by the URL. Cached data is persisted across user sessions. A metadata store,
which is realized using a Sesame native storage, caches the date of the last request as well
as Location [FGM+ 99, 14.30], Content-Type [ibid., 14.17] and caching-related response
headers102 for every URL. The latter are used to determine whether a required URL
should be re-requested from its source, or whether the cached version is sufficient. Due to
performance considerations, cached data is always considered fresh for at least 24 hours,
regardless of the indications by the data provider.
 98
     foaf:name, rdfs:label, dc:title, doap:name, geonames:name.
 99
     http:// www.w3.org/ 2001/ 11/ IsaViz/ (retrieved 06/02/2008).
 100
     http:// saxon.sourceforge.net/ (retrieved 05/24/2008).
 101
     Links with these predicates are automatically followed:       owl:sameAs,  rdfs:seeAlso,
p:hasPhotoCollection, foaf:knows, foaf:currentProject, foaf:made, doap:maintainer, dc:creator,
swrc:participant
 102
       Cache-Control [FGM+ 99, 14.9], Expires [ibid., 14.21], Pragma [ibid., 14.32].




                                                       49
                                                             9 MARBLES LINKED DATA ENGINE


 9.4          Fresnel View Generation

 Marbles uses Fresnel [BLP05] lenses and formats to generate XML-based tree represen-
 tations of a resource’s properties and those of selected related resources, such as reviews.
 The resulting XML tree is transformed to XHTML based on an XSLT style sheet. Core
 elements of the Fresnel tree103 are thereby converted into HTML div elements [RHJ99,
 7.5.4] with a class attribute [ibid., 7.5.2] that indicates their original element name.
           Fresnel lenses select which properties of a resource are rendered (cf. [BLP05, 2.]).
 Marbles applies Fresnel lenses over the entire store, so that lenses can select both base
 and cached data. Figure 28 shows the Fresnel lens abstractLens that is used to select
 the elements of the summary view (cf. subsection 6.1). In line 3, Fresnel’s lens purpose
 mechanism [BLP05, 2.3] is used to associate the lens with the summary view, which is
 represented by the resource :abstractPurpose104 . Line 4 uses a wild card in an FSL
 Selector [ibid., 1.3.2] to make this lens applicable to all resource instances. The following
 lines select reviews, homepages, images and abstract texts associated with the resource to
 be rendered. Notably, the property description for reviews references a sublens [BLP05,
 2.5] that is expressed using the same grammar and in turn selects properties such as the
 review’s rating and review text. The abstract text property description uses a FSL Selector
 to retrieve text in a specific language. When the Fresnel configuration is loaded, the
 ParamReader class dynamically replaces ##lang## with the language the user requested.

 1     # Abstract purpose lens
 2     :abstractLens   rdf:type fresnel:Lens ;
 3                     fresnel:purpose :abstractPurpose ;
 4                     fresnel:instanceLensDomain "*"^^fresnel:fslSelector ;
 5
 6                        fresnel:group :defaultGroup ;
 7                        fresnel:showProperties (
 8                                # review
 9                                [ rdf:type fresnel:PropertyDescription ;
10                                  fresnel:property rev:hasReview ;
11                                  fresnel:sublens :reviewLens ]
12
13                                # homepage
14                                foaf:homepage
15
16                                # "those depictions which are particularly representative of something"
17                                foaf:img
18
19                                # DBpedia Abstract
20                                [ rdf:type fresnel:PropertyDescription ;
21                                  fresnel:property "p:abstract[text()@##lang##]"^^fresnel:fslSelector ;
22                                  fresnel:use :abstractTextFormat ]
23                        ) .



     Figure 28: The Fresnel lens abstractLens that is used to generate the summary views.

           Fresnel formats define how information is displayed (cf. ibid., 3.). Marbles’ Fresnel
     103
           property, resource, label, values and value [Lee05].
     104
     Fresnel’s grouping mechanism may be used to associate a group with an external style sheet (cf.
 [BLP05, 6.3]). However, the group mechanism links lenses and formats (cf. [BLP05, 4.1]), which was not
 desired as all formats were to be shared between all lenses.


                                                        50
                                                         9 MARBLES LINKED DATA ENGINE


formats use styling hooks [ibid., 3.4] to reference custom CSS classes for the styling
of property, value and label elements, which the XSLT stylesheet supplies as class
attributes of the related XHTML elements. Table 4 lists these classes with their applicable
scope and functionality.

    Class                       Scope           Functionality
    block                       property        Renders a property as a block-level element
                                                [BÇHL07, 9.2.1]
    exclude                     property        Prevents a property from being rendered;
                                                currently used to prevent duplicate display of
                                                titles
    list                        property        Renders the property as an unordered list using
                                                the HTML tag ul [RHJ99, 10.2]
    showInAbstract              label           Shows the label in the summary view, which
                                                hides all labels by default
    abstractRightBox            value           Places an image in a right-floated [RHJ99, 5.1.3]
                                                box
    listitem                    value           Renders the property as a list item using the
                                                HTML tag li [RHJ99, 10.2]
    rating, maxrating           value           Used in conjunction to render a rating as a series
                                                of yellow and grey stars
    title                       value           Uses the value as the resource title


                  Table 4: Special functionalities provided by custom CSS classes.

      Figure 29 shows the Fresnel format imgFormat, which causes foaf:img properties to
be rendered as images (cf. line 4). It references the abstractRightBox class in a value
styling hook (cf. line 3).

1    :imgFormat       rdf:type fresnel:Format ;
2                     fresnel:propertyFormatDomain foaf:img ;
3                     fresnel:valueStyle "abstractRightBox"^^xsd:string ;
4                     fresnel:value fresnel:image ;
5                     fresnel:group :defaultGroup .



Figure 29: The Fresnel format imgFormat causes foaf:img properties to be rendered as
images and references the abstractRightBox class.

      The XHTML output references CSS style sheets that correspond to the requested type
of view. These contain formatting instructions for the aforementioned core elements of
the Fresnel tree, as well as for the custom CSS classes. This allows to achieve purposive
layouts:

      • The summary view style sheet makes intensive use of inline-level elements [BÇHL07,
        9.2.2] to achieve a compressed display.

      • The photo view style sheet displays images in a thumbnail size and aligns them next
        to each other.

                                                    51
                                                    9 MARBLES LINKED DATA ENGINE


    • The full view style sheet features a tabular layout that displays each property in an
         individual row.

    Figure 30 shows an exemplary CSS class definition for the abstractRightBox class in
the summary view. It fits images into a 150 × 150 pixel container and floats them to the
right.

1   .abstractRightBox {
2           float: right;
3           max-width: 150px;
4           max-height: 150px;
5           padding: 0;
6           margin: 0 1px 10px 10px;
7   }



      Figure 30: CSS class style abstractRightBox in abstractPurposeStyle.css.

    Certain functionalities, such as the generation of stars based on the rating and
maxrating classes, are implemented in the XSLT style sheet.


9.5      owl:sameAs Inference

Different data sources may contain statements about the same resource, but each use their
own URIs to identify the resource. In the context of Linked Data, the predicate owl:sameAs
is commonly used to connect such URI Aliases in distinct datasets (cf. [BCH08, 2.1.]),
allowing a client to reconcile multiple datasets.
    When generating a Fresnel View for a given resource, it is desirable to incorporate
statements that pertain to URI Aliases of that resource. While it is technically feasible to
implement owl:sameAs traversal in Frensel lenses, a simpler approach is to apply inference
to treat statements of alias resources as if they referred to the focal resource for which the
Fresnel view is generated.
    This is realized by the SameAs Inferencer component, which builds on Sesame’s
InferencerConnection class. For a given resource, it determines all URI Aliases. It
then iterates all statements where they act as an RDF subject or object, and creates
new statements where the focal resource is substituted for the URI Alias. Respectively,
statements pertaining to the focal resource are applied to the URI Alias.
    All statements are created as inferred statements, which may be excluded from query
results where they are not desired (e.g.      cf.   [Adu08, getStatements]).    The SameAs
Inferencer excludes inferred statements from its own processing in order to prevent loops.
    The SameAs Inferencer supports an automatic mode where it processes new statements
as they are added:         New statements with owl:sameAs predicates cause statements
pertaining to the two resources (i.e. subject and object) to be applied to one another.
New triples with predicates other than owl:sameAs initiate a lookup for URI Aliases, to



                                             52
                                                         9 MARBLES LINKED DATA ENGINE


whom the statement will then be applied. Because the Inferencer does not implement
handling for the removal of triples, inferred statements are not removed.
    While easy to integrate, the automatic mode results in poor performance when many
triples are added at once. It may be disabled using the method setAutoInference, and
the method addInferredForResource may then be used to selectively initiate inferencing
for a given resource. For better performance, this approach is followed by the Marbles
Servlet, which initiates inferencing for the focal resource prior to view generation.


9.6    Integrating Geospatial Extensions

With the introduction of RDBMS storage in Sesame 2.1, it became possible to use MySQL
as a storage back-end, which allowed to take advantage of its Spatial Extensions in
order to realize efficient geospatial searches on the triple store. Specifically, the function
MBRContains [MyS08, p. 1291] allows to find points in a given area. These must be stored
using the POINT data type [MyS08, p. 1274] and indexed using a SPATIAL index [MyS08,
p. 1292ff.].
    The Sesame RDBMS layer was extended to recognize geospatial coordinates expressed
using the newer W3C Geospatial Vocabulary, and to store them as POINTs in an
appropriately configured table105 .          The vocabulary was specifically chosen because it
serializes both a point’s latitude and longitude components as a single literal (cf. [LSG07,
2]), permitting easy conversion to MySQL’s POINT data type that follows the same approach
(cf. [MyS08, p. 1274]). Because the vocabulary defines points as plain literals [KC04,
3.4]106 , a recognition of points based on their data type was not feasible. Instead, they are
recognized when they figure as objects in a geo:point relationship.
    A custom SPARQL Extension Function [PS08, 11.6] maps to MySQL’s MBRContains
to test point values for their location within a bounding rectangle. Figure 31 describes the
function prototype of beckr:boxContains using the notation of [PS08, 11]. It is used by
the DBpedia Mobile’s Query Service (cf. subsection 8.2) to implement areal filtering for
both Simple and SPARQL Filters.

1   xsd:boolean   beckr:boxContains (simple literal southWest, simple literal
        northEast, simple literal point)


                    Figure 31: Function prototype of beckr:boxContains.


9.7    Endpoint Services

The Marbles endpoint offers SPARQL and REST services:107
 105
     This was facilitated by the fact that the RDBMS layer already stipulated individual tables for special
data types.
 106
     [W3C07a] indicates a rdfs:range of xsd:string for the geo:point property; e.g. cf. [LSG07, 1.1].
 107
     The endpoint of the public installation is located at http:// beckr.org/ marbles.


                                                    53
                                                 9 MARBLES LINKED DATA ENGINE


   SPARQL Endpoint. Marbles implements basic features of the SPARQL Protocol
[CFT08]. It therefore acts as a SPARQL endpoint, allowing third-party applications to
query the triple store. This functionality is used by DBpedia Mobile to retrieve the data
for its map display (cf. section 7). The endpoint supports the SELECT, CONSTRUCT and
DESCRIBE query forms [PS08, 10]; triple serialization is limited to the RDF/XML [Bec04]
format. The indication of graphs using the default-graph-uri and named-graph-uri
elements [CFT08, 2.1.2] is not supported; however graphs may be indicated in the query
text using FROM and FROM NAMED keywords [PS08, 8.2].

   REST Services. Marbles provides REST services to generate views, discover data
about resources, load URLs into the cache, and to selectively remove them. Table 5 shows
the REST services that are supported by the Marbles endpoint via HTTP GET or POST.

      View. Discovers an URI (see below) and renders a given view.
          Parameter                   Description
          do                          Must be set to view
          uri                         The resource of interest
          purpose (optional)          abstractPurpose | defaultPurpose | photoPur-
                                      pose (if omitted, a full view is generated)
          lang (optional)             Language tag [Alv01] indicating the preferred
                                      language for labels and abstract texts; defaults
                                      to en
      Discover. Tries to dereference the URI and queries Sindice and Revyu
      for data; then follows known predicates.
          Parameter                   Description
          do                          Must be set to discover
          uri                         The resource of interest
      Load. (Re)loads an URL into the cache.
          Parameter                   Description
          do                          Must be set to load
          url                         The URL to load
      Clear. Removes an URL from the cache.
          Parameter                   Description
          do                          Must be set to clear
          url                         The URL to remove


             Table 5: The REST services supported by the Marbles endpoint.


9.8    Service Setup

   Server Configuration. Marbles is configured using the servlet configuration file
web.xml, which allows the specification of local and HTTP paths, activated data providers
as well as database connection settings. A documented sample configuration is provided
in web.xml.sample.

                                            54
                                                          9 MARBLES LINKED DATA ENGINE


          In order to integrate Marbles into an existing URL namespace that is served by an
Apache HTTP Server, an internal redirection was set up using the Apache HTTP Server
modules mod_rewrite and mod_proxy108 . Figure 32 shows the mod_rewrite configuration
inside a virtual host configuration for Apache HTTP Server.


          Pre-Loading of Base Data. Using the custom command-line loading tool Sesame-
Tool, the geographical coordinates of DBpedia 3.0109 , its labels datasets covering 14
languages110 as well as YAGO class associations111 were pre-loaded into the database.
geotool.php was thereby used to convert geographical coordinates from the Basic Geo
Vocabulary to the W3C Geospatial Vocabulary. Because labels and categories pertaining
to non-geographic resources were largely not required by the application, they were removed
using geotool.php in order to improve the database performance.112

1     RewriteEngine on
2     RewriteRule ^/marbles(/)?$ http://localhost:8080/Marbles/marbles [P]


Figure 32: The host-level mod_rewrite configuration that is used to integrate Marbles into
the existing URL namespace by means of an internal redirection.




    108
        http:// httpd.apache.org/ docs/ 2.2/ mod/ mod_proxy.html (retrieved 05/31/2008).
    109
        http:// wiki.dbpedia.org/ Downloads30#geographiccoordinates (retrieved 05/24/2008).
    110
        http:// wiki.dbpedia.org/ Downloads30#titles (retrieved 05/24/2008).
    111
        http:// wiki.dbpedia.org/ Downloads30#yagoclasses (retrieved 05/24/2008).
    112
        This reduced the number of triples from 6,892,108 to 204,466.


                                                     55
10        RDF Conversion
In the course of this work, several datasets were converted to RDF in order to provide
content for DBpedia Mobile: Wikipedia extractors for geographical coordinates and
homepages and the flickrTM wrappr 113 , a Linked Data wrapper that provides photos from
Flickr for DBpedia concepts, were created. The extractors are integrated in DBpedia since
the 2.0 release, and the the flickrTM wrappr is linked from DBpedia since the 3.0 release
(cf. [DBp08a]).


10.1       Geo Extractor

Many Wikipedia articles about objects with physical locations prominently feature
geographical coordinates near the article headline.              These coordinates were the basic
prerequisite to enable DBpedia Mobile to locate resources in a given area.
       Article coordinates are usually provided in infoboxes (cf.              [ABL+ 07, p.       724 f.]
for background), but DBpedia’s generic Infobox Extractor did not extract them in a
usable manner. Accordingly, the Geo Extractor 114 was written for DBpedia’s extraction
framework, with specific support for ten templates that are commonly used to specify
geographical coordinates. The supported templates were chosen based on an analysis of
a multitude of Wikipedia articles for countries, cities, regional districts, sights and public
infrastructure such as train stations and airports. Wikipedia map views of Google Earth115
and GeoNames were then used to verify correctness and coverage of the extraction.116
       The extraction is performed using PHP Regular Expressions117 . For the DBpedia 3.0
release, the Geo Extractor was able to extract geographical coordinates for more than
200,000 articles of the English Wikipedia.
       The Geo Extractor expresses geographical coordinates using the Basic Geo (WGS84
lat/long) Vocabulary. This vocabulary was chosen as it was the de-facto standard for
the expression of geographical coordinates in RDF, and because its separate expression of
latitude and longitude components (cf. [Bri06, Basic RDF Geo Vocabulary: Point/lat/-
long/alt]) allowed for simple areal filtering in SPARQL queries. Some templates support
the specification of feature types, which the Geo Extractor partially maps to feature types
of the GeoNames ontology118 and the yago:landmark type.
       Figure 33 shows a coordinate entry for the Free University of Berlin that expresses the
 113
      http:// www4.wiwiss.fu-berlin.de/ flickrwrappr/ (retrieved 05/24/2008).
 114
      http:// dbpedia.svn.sourceforge.net/ viewvc/ dbpedia/ extraction/ extractors/ GeoExtractor.php? view=
markup (retrieved 05/24/2008).
  115
      http:// earth.google.com/ (retrieved 06/12/2008).
  116
      The total number of locations extracted for DBpedia 3.0 is slightly higher than the 171,874 locations
for articles from the English Wikipedia that were extracted by GeoNames (cf. [Wic08]). However, the Geo
Extractor was not executed against other language versions of DBpedia, which are nonetheless partially
covered by the extraction templates.
  117
      http:// www.php.net/ manual/ en/ book.pcre.php (retrieved 06/12/2008).
  118
      http:// www.geonames.org/ ontology/ (retrieved 06/12/2008).


                                                    56
                                                                            10 RDF CONVERSION


coordinates of the university’s location in degree-minute-second format. It was taken from
the source code of the related article in the English Wikipedia119 . Figure 34 shows an
N-Triples [GB04, 3.] serialization of the output that the Geo Extractor generated for this
record: Latitude and longitude coordinates are converted to floating point numbers and are
expressed using the Basic Geo Vocabulary, while the landmark indication was converted
to the yago:landmark type.

1     {{coor title dms|52|27|11|N|13|17|26|E|region:DE-BE_type:landmark}}



Figure 33: Coordinate entry for the Free University of Berlin from the English Wikipedia
[Wik08].


1     <http://dbpedia.org/resource/Free_University_of_Berlin> <http://www.w3.org/2003/01/geo/wgs84_pos#
           lat> "52.4530555556"^^<http://www.w3.org/2001/XMLSchema#float> .
2     <http://dbpedia.org/resource/Free_University_of_Berlin> <http://www.w3.org/2003/01/geo/wgs84_pos#
           long> "13.2905555556"^^<http://www.w3.org/2001/XMLSchema#float> .
3     <http://dbpedia.org/resource/Free_University_of_Berlin> <http://www.w3.org/1999/02/22-rdf-syntax-
           ns#type> <http://dbpedia.org/class/yago/landmark> .



Figure 34: Converted coordinates expressed using the Basic Geo Vocabulary and the YAGO
ontology.



10.2          Homepage Extractor

The Homepage Extractor 120 was written with the objective of providing direct links
to the official websites of DBpedia resources such as companies, organizations and
public institutions, which are prominently displayed DBpedia Mobile’s summary view (cf.
subsection 6.1).
          DBpedia already provided a dataset for External Links 121 with all links found in the
“External Links” section of Wikipedia articles. These may stem from everywhere on the
web and may only marginally deal with the resource of interest. Contrarily, the Homepage
Extractor generates foaf:homepage predicates for external links that contain variations of
the word “official”, as well as infobox properties that indicate a homepage, such as “website”
and “homepage”.
          Figure 35 shows an external link to the homepage of the Free University of Berlin from
the source code of its English Wikipedia article. Because the link label contains the word
“official”, the Homepage Extractor recognizes this link and generates an appropriate triple,
as shown in Figure 36.
    119
     http:// en.wikipedia.org/ wiki/ Free_University_of_Berlin (retrieved 06/12/2008).
    120
     http:// dbpedia.svn.sourceforge.net/ viewvc/ dbpedia/ extraction/ extractors/ HomepageExtractor.php?
view=markup (retrieved 05/24/2008).
 121
     http:// wiki.dbpedia.org/ Downloads30#externallinks (retrieved 05/24/2008).




                                                    57
                                                                             10 RDF CONVERSION


1     * [http://www.fu-berlin.de/en/ Official Homepage]



Figure 35: An external link entry for the Free University of Berlin from the English
Wikipedia [Wik08].

1     <http://dbpedia.org/resource/Free_University_of_Berlin> <http://xmlns.com/foaf/0.1/homepage> <http
           ://www.fu-berlin.de> .



Figure 36: The related foaf:homepage statement generated by the Homepage Extractor.


10.3          flickrTM wrappr

The flickrTM wrappr122 extends DBpedia with RDF links to photos posted on Flickr
(cf. [BB08a]). It provides input for DBpedia Mobile’s photo view (cf. subsection 6.1),
which gives users a convenient access to a variety of photos that depict a resource. It
dynamically obtains multilingual labels and geographical positions from the DBpedia’s
SPARQL endpoint123 and then queries the Flickr API124 for photos that were taken near
the position and match one of the labels. This mechanism is able to deliver a moderate
number of relevant photos for many physical resources (e.g. cf. [BB08a]).
          Photo collections for a given DBpedia resource are served as Linked Data at
http://www4.wiwiss.fu-berlin.de/flickrwrappr/photos/DBpedia_Resource using HTTP
content negotiation with 303 See Other redirection (cf. [BCH08, Content Negotiation])
to support both RDF and HTML clients. Starting with the DBpedia 3.0 release, all
2.18 million DBpedia resources are linked to their respective photo collections using
p:hasPhotoCollection links. The flickrTM wrappr is furthermore able to provide photos
for DBpedia resources relating to abstract concepts (such as “physics”), as well as arbitrary
photos from specified geographic areas.
          Figure 37 shows an exemplary HTML output with photos of the resource http://
dbpedia.org/ resource/ Brandenburg_Gate. The HTML display includes RDF output for
demonstration purposes.




    122
        http:// www4.wiwiss.fu-berlin.de/ flickrwrappr/ (retrieved 05/24/2008).
    123
        http:// dbpedia.org/ sparql (retrieved 06/12/2008).
    124
        http:// www.flickr.com/ services/ api/ (retrieved 06/12/2008).


                                                      58
                                                         10 RDF CONVERSION




Figure 37: A HTML output generated by the flickrTM wrappr shows photos of the
resource http://dbpedia.org/resource/Brandenburg_Gate. RDF output is included for
demonstration purposes.
                                          59
Part III

Conclusion




             60
11      Summary
This work introduced an approach to geospatial integration using Semantic Web technolo-
gies, which is realized by the web application DBpedia Mobile. It is supported by the
Marbles Linked Data Engine and multiple converted datasets.
     The contributions of this work are summarized in the following:


     Geospatial Integration using Semantic Web Technologies. The introduced
approach allows to realize geospatial browsing with data from arbitrary, disparate sites. It
is built on Semantic Web technologies, which provide simple provisions for data integration
and allow for high granularity and domain specificity of data.          Linked Data thereby
facilitates the discovery of related data.


     DBpedia Mobile. The web application DBpedia Mobile allows users to discover,
search and publish Linked Data pertaining to their current physical environment using
their mobile phones. It is realized as a client-side JavaScript application that is supported
by server-side web services and is complemented by a positioning helper application for
Windows Mobile devices. Its display and database capabilities are provided by the Marbles
Linked Data Engine.


     Marbles Linked Data Engine. The Marbles Linked Data Engine is a server-side
application that caches Linked Data from the Web, which may then be rendered and
queried. Acting as a Linked Data browser, it formats content for traditional XHTML
clients using Fresnel and CSS configurations. Marbles achieves high responsiveness thanks
to caching and multi-threaded retrieval, and is specifically optimized for geospatial searches.
It supports owl:sameAs inference in order to incorporate statements that pertain to URI
Aliases of a rendered resource. Marbles offers a SPARQL endpoint and a variety of REST
web services.


     RDF Conversion. In the course of this work, several datasets were converted to
RDF in order to provide content for DBpedia Mobile. The Geo Extractor provides the
geographical coordinates that DBpedia Mobile uses to find resources in the user’s vicinity.
The Homepage Extractor extracts links to the official websites of DBpedia resources such as
companies, organizations and public institutions, which may then be conveniently accessed
from DBpedia Mobile’s summary view. The flickrTM wrappr, a Linked Data wrapper,
provides photos from Flickr for DBpedia resources, which are used in DBpedia Mobile’s
summary and photo views.




                                             61
12       Outlook
The presented work offers several opportunities for future work:


       DBpedia Mobile currently does not provide editing or deletion functionalities, nor
does it address privacy issues – all User Graph data is publicly accessible.                Its map
display mechanism, which currently maps icons to individual resource types, could greatly
benefit from RDF Schema [BG04] awareness, so that the mapping of an icon to a class
is automatically applied to subclasses. As more mobile phones with support for rich web
applications become available, DBpedia Mobile can be adapted to support them. For
instance, major features of DBpedia Mobile already work on the Apple iPhone125 . Once
HTTP-based transmission mechanisms for geographic locations are standardized, they
could be integrated into the DBpedia Mobile web application to eliminate the need for
the related helper application.


       Marbles could be extended to allow third parties to reference their own Fresnel and
CSS configurations within their data, which could then be retrieved and used to display the
data (cf. [PBKL06, 5]). While Marbles already allows to browse arbitrary content, this
would enable more suitable representations of content. With the appropriate hardware
configuration, Marbles could support a high number of users and provide an extended
coverage of cached Linked Data that could be used for display purposes. This cache could
ultimately encompass the whole Semantic Web, much like search engines such as Google126
currently cache the web of documents.


  The presented solution builds on an open architecture and is not limited to DBpedia
resources. There are multiple public datasets with locations that could be pre-loaded into
the database (following a conversion to RDF if necessary), so that they could be integrated
into the map display. These include GeoNames127 , OpenStreetMap, ChefMoz128 , as well
as public transportation data that is published by authorities such as the San Francisco
Bay Area Rapid Transit District129 .
       Current Linked Data initiatives by major content providers such as the publication
of programme data by the British Broadcasting Corporation [SH08] and the publication
of Subject Headings by the United States Library of Congress130 , initiatives such as the
DataPortability project131 and the introduction of the Open Data Commons (ODC) Public
 125
      http:// www.apple.com/ iphone/ (retrieved 06/12/2008).
 126
      http:// www.google.com/ (retrieved 06/12/2008).
  127
      The import of location data from GeoNames into the public installation of DBpedia Mobile was not
feasible due to the insufficient physical configuration of that server.
  128
      http:// chefmoz.org/ rdf.html (retrieved 06/12/2008).
  129
      http:// www.bart.gov/ stations/ schedules/ openformat.asp (retrieved 06/12/2008).
  130
      http:// lcsh.info/ (retrieved 06/12/2008).
  131
      http:// www.dataportability.org/ (retrieved 06/12/2008).


                                                 62
                                                                                 12 OUTLOOK


Domain Dedication and Licence132 , a legal framework for the open access of databases,
are indicative of trends that will make more information available on the Semantic Web.
DBpedia Mobile will benefit from these trends, which will contribute new geospatial entry
points, as well as data connected to them.
       When provided with personal data and preferences, DBpedia Mobile could ultimately
be extended to serve as a personal assistant to perform tasks such as informing users about
preferred cafés near their friends’ locations (cf. [BL07b, 00:01:28]). It was already used
to browse personalized event recommendations (cf. subsection 6.2), and [Pas08] suggests
to use DBpedia Mobile to find nearby people with shared interests based on information
from FOAF profiles.
       With like use cases, DBpedia Mobile can become a step towards W3C’s vision of Web
3.0 that links “data and devices in new ways to achieve new insights, greater efficiencies,
economic benefits, and improved quality of life.” [Bra08, p. 46].




 132
    http:// www.opendatacommons.org/ odc-public-domain-dedication-and-licence/        (retrieved
06/12/2008).


                                                63
Appendices




             64
A      List of Abbreviations
3G . . . . . . . . . . . Third Generation
API . . . . . . . . . . Application Programming Interface
CSS . . . . . . . . . . Cascading Style Sheets [BÇHL07]
DOM . . . . . . . . Document Object Model [LH04]
EBNF . . . . . . . Extended Backus–Naur Form [Int96]
ESWC 2008 . . 5th Annual European Semantic Web Conference
FOAF . . . . . . . Friend of a Friend [BM07]
FSL . . . . . . . . . . Fresnel Selector Language for RDF [Pie05]
GIS . . . . . . . . . . Geographic Information System
GML . . . . . . . . Geography Markup Language [Ope08e]
GNSS . . . . . . . . Global Navigation Satellite System
GPS . . . . . . . . . Global Positioning System
GRDDL . . . . . Gleaning Resource Descriptions from Dialects of Languages [Con07]
GSW . . . . . . . . Geospatial Semantic Web
HTML . . . . . . . HyperText Markup Language [RHJ99]
HTTP . . . . . . . Hypertext Transfer Protocol [FGM+ 99]
IETF . . . . . . . . Internet Engineering Task Force
IP . . . . . . . . . . . Internet Protocol [Pos81]
KML . . . . . . . . . Keyhole Markup Language [Ope08d]
LDOW2008 . . 1st Workshop about Linked Data on the Web
MHz . . . . . . . . . Megahertz
ODC . . . . . . . . . Open Data Commons
OGC . . . . . . . . . Open Geospatial Consortium, Inc.
OWL . . . . . . . . Web Ontology Language [MvH04, SWM04, BvHH+ 04, PSHH04, CR04,
                   Hef04]
PHP . . . . . . . . . PHP: Hypertext Preprocessor
QVGA . . . . . . . Quarter Video Graphics Array
RAP . . . . . . . . . RDF API for PHP
RDBMS . . . . . Relational Database Management System
RDF . . . . . . . . . Resource Description Framework [Bec04, BG04, MM04, KC04, Hay04,
                   GB04]
REST . . . . . . . . Representational State Transfer [FT02]
RSS . . . . . . . . . . Really Simple Syndication [RSS07]
SDK . . . . . . . . . Software Development Kit
SPARQL . . . . . SPARQL Protocol and RDF Query Language [PS08, CFT08, BB08c]
SWEO . . . . . . . W3C Semantic Web Education and Outreach
TAG . . . . . . . . . W3C Technical Architecture Group


                                                     65
                                                              A LIST OF ABBREVIATIONS


URI . . . . . . . . . . Uniform Resource Identifier [BLFM05]
URL . . . . . . . . . Uniform Resource Locator [BLMM94]
W3C . . . . . . . . . World Wide Web Consortium
WFS . . . . . . . . . Web Feature Service [Ope08f]
WGS84 . . . . . . World Geodetic System 1984 [US04]
WWW . . . . . . . World Wide Web
XHTML . . . . . Extensible HyperText Markup Language [PAA+ 02]
XML . . . . . . . . . Extensible Markup Language [BPSM+ 06]
XSLT . . . . . . . . XSL Transformations [Kay07]




                                               66
B      List of Namespaces
(empty) . . . . . . http:// beckr.org/ fresnel/
beckr . . . . . . . . http:// beckr.org#
dc . . . . . . . . . . . http:// purl.org/ dc/ elements/ 1.1/
doap . . . . . . . . . http:// usefulinc.com/ ns/ doap#
foaf . . . . . . . . . http:// xmlns.com/ foaf/ 0.1/
fresnel . . . . . http:// www.w3.org/ 2004/ 09/ fresnel#
geo . . . . . . . . . . http:// www.georss.org/ georss/
geonames . . . . http:// www.geonames.org/ ontology#
owl . . . . . . . . . . http:// www.w3.org/ 2002/ 07/ owl#
p . . . . . . . . . . . . . http:// dbpedia.org/ property/
rdf . . . . . . . . . . http:// www.w3.org/ 1999/ 02/ 22-rdf-syntax-ns#
rdfs . . . . . . . . . http:// www.w3.org/ 2000/ 01/ rdf-schema#
rev . . . . . . . . . . http:// purl.org/ stuff/ rev#
swrc . . . . . . . . . http:// swrc.ontoware.org/ ontology#
xsd . . . . . . . . . . http:// www.w3.org/ 2001/ XMLSchema#
yago . . . . . . . . . http:// dbpedia.org/ class/ yago/




                                                       67
C     Compatibility of Web-Based Mapping APIs with Mobile
      Browsers
In the course of determining the development platform for DBpedia Mobile, major map
APIs were tested for compatibility with mobile web browsers.
    The following browsers were tested:

    • Internet Explorer Mobile133 , as shipped with Windows Mobile 6, on an o2 Xda orbit
      2 [O08]

    • Minimo 0.2134 , Mozilla’s current mobile web browser, on an o2 Xda orbit 2

    • Opera Mobile 8.65135 , on an o2 Xda orbit 2

    • Safari136 , on the iPhone Simulator that is part of the iPhone SDK137

    • S60 Web Browser138 , on a Nokia N95139

    The test results are shown in Table 6:
                          Internet       Minimo          Opera           Safari          S60
                          Explorer
    Google Maps 140       Map not        Works           Works           Works           Map not
                          shown                                                          shown
    OpenLayers 141        Map not        Garbled         Works           Works           Works
                          shown          display
    Virtual               Map not        Garbled         Works           Works           Map not
    Earth142              shown          display, no                                     shown
                                         interaction
                                         possible
    Yahoo!                Map not        Garbled         Map not         Works           Map not
    Maps 143              shown          display         shown                           shown


                    Table 6: Web-based mapping APIs on mobile browsers.

    Due to the iPhone’s gesture handling, map dragging and double-clicking to zoom in
generally did not work. Minimo was found to crash quickly, whereas Opera Mobile generally
exhibited very good responsiveness.
 133
     http:// www.microsoft.com/ windowsmobile/ microsoftprograms/ iemobile.mspx                 (retrieved
05/24/2008).
 134
     http:// www.mozilla.org/ projects/ minimo/ (retrieved 05/24/2008).
 135
     http:// www.opera.com/ products/ mobile/ (retrieved 05/24/2008).
 136
     http:// www.apple.com/ iphone/ features/ index.html#internet (retrieved 05/24/2008).
 137
     http:// developer.apple.com/ iphone/ (retrieved 05/24/2008).
 138
     http:// www.s60.com/ business/ whatss60/ builtinapplications/ webrowser (retrieved 06/12/2008).
 139
     http:// europe.nokia.com/ A4323278 (retrieved 06/12/2008).
 140
     http:// people.mozilla.com/ ~chofmann/ map.html (retrieved 05/24/2008).
 141
     http:// openlayers.org/ dev/ examples/ example.html (retrieved 05/24/2008).
 142
     http:// beckr.org/ DBpediaMobile/ virtualearth-test.html (retrieved 05/24/2008).
 143
     http:// developer.yahoo.com/ maps/ ajax/ V3.8/ example/ ymap.html (retrieved 05/24/2008).


                                                   68
Bibliography
AB08      Adida, B., Birbeck, M. (eds.): RDFa Primer – W3C Working Draft. URL:
          http:// www.w3.org/ TR/ xhtml-rdfa-primer/ , W3C, 03/17/2008, retrieved
          05/14/2008.

ABL+ 07   Auer, S., Bizer, C., Lehmann, J., Kobilarov, G., Cyganiak, R., Ives, Z.:
          DBpedia: A Nucleus for a Web of Open Data. In: Aberer, K., Choi, K.-
          S., Noy, N., Allemang, D., Lee, K.-I., Nixon, L. J. B., Golbeck, J., Mika,
          P., Maynard, D., Schreiber, G., Cudré-Mauroux, P. (eds.): Proceedings of
          the 6th International Semantic Web Conference and 2nd Asian Semantic Web
          Conference (ISWC/ASWC2007), Busan, South Korea, volume 4825 of LNCS,
          p. 715–728. Springer Verlag, Berlin, Heidelberg, November 2007.

ABMP08 Adida, B., Birbeck, M., McCarron, S., Pemberton, S. (eds.): RDFa in XHTML:
          Syntax and Processing – W3C Working Draft. URL: http:// www.w3.org/ TR/
          rdfa-syntax/ , W3C, 02/21/2008, retrieved 05/14/2008.

Adu08     Aduna:   Interface RepositoryConnection.      URL: http:// www.openrdf.org/
          doc/ sesame2/ api/ org/ openrdf/ repository/ RepositoryConnection.html ,
          06/03/2008, retrieved 06/03/2008.

AH07a     Adida, B., Hausenblas, M. (eds.): RDFa Use Cases: Scenarios for Embedding
          RDF in HTML – W3C Working Draft.              URL: http:// www.w3.org/ TR/
          xhtml-rdfa-scenarios/ , W3C, 03/30/2007, retrieved 05/15/2008.

AH07b     Ayers, D., Heath, T. (eds.): RDF Review Vocabulary. URL: http:// danja.talis.
          com/ xmlns/ rev , 11/12/2007, retrieved 05/15/2008.

Alv01     Alvestrand, H. T.: Tags for the Identification of Languages – Request for
          Comments. URL: http:// www.ietf.org/ rfc/ rfc3066.txt, IETF, January 2001,
          retrieved 05/28/2008.

Apa08     The Apache Software Foundation: Apache Module mod_dir - Apache HTTP
          Server Version 2.2. URL: http:// httpd.apache.org/ docs/ 2.2/ mod/ mod_dir.
          html , 02/08/2008, retrieved 05/31/2008.

AS03      Ashbrook, D., Starner, T.: Using GPS to learn significant locations and predict
          movement across multiple users. Personal and Ubiquitous Computing 7(5),
          2003, p. 275–286.

BB08a     Becker, C., Bizer, C.: flickrTM wrappr. URL: http:// www4.wiwiss.fu-berlin.de/
          flickrwrappr/ , Web-based Systems Group, 01/24/2008, retrieved 05/07/2008.


                                          69
                                                                      BIBLIOGRAPHY


BB08b    Becker, C., Bizer, C.: DBpedia Mobile: A Location-Enabled Linked Data
         Browser.    In:    1st Workshop about Linked Data on the Web (LDOW
         2008), April 2008.     URL: http:// events.linkeddata.org/ ldow2008/ papers/
         13-becker-bizer-dbpedia-mobile.pdf , 03/02/2008, retrieved 06/10/2008.

BB08c    Beckett, D., Broekstra, J. (eds.): SPARQL Query Results XML Format – W3C
         Recommendation. URL: http:// www.w3.org/ TR/ rdf-sparql-XMLres/ , W3C,
         01/15/2008, retrieved 05/07/2008.

BC07     Bizer, C., Cyganiak, R.: D2RQ - Lessons Learned. In: W3C Workshop on
         RDF Access to Relational Databases, 2007. URL: http:// www.w3.org/ 2007/
         03/ RdfRDB/ papers/ d2rq-positionpaper/ , 09/08/2007, retrieved 05/23/2008.

BCH08    Bizer, C., Cyganiak, R., Heath, T.: How to Publish Linked Data on the
         Web. URL: http:// www4.wiwiss.fu-berlin.de/ bizer/ pub/ LinkedDataTutorial/ ,
         02/18/2008, retrieved 05/21/2008.

BÇHL07   Bos, B., Çelik, T., Hickson, I., Lie, H. W. (eds.): Cascading Style Sheets Level
         2 Revision 1 (CSS 2.1) Specification – W3C Candidate Recommendation. URL:
         http:// www.w3.org/ TR/ CSS21/ , W3C, 07/19/2007, retrieved 05/22/2008.

Bec04    Beckett, D. (ed.): RDF/XML Syntax Specification (Revised) – W3C Rec-
         ommendation.      URL: http:// www.w3.org/ TR/ rdf-syntax-grammar/ , W3C,
         02/10/2004, retrieved 05/14/2008.

Bec08    Becker, C.: RDF Store Benchmarks with DBpedia. URL: http:// www4.wiwiss.
         fu-berlin.de/ benchmarks-200801/ , 01/17/2008, retrieved 05/20/2008.

BG04     Brickley, D., Guha, R. (eds.): RDF Vocabulary Description Language 1.0:
         RDF Schema – W3C Recommendation.              URL: http:// www.w3.org/ TR/
         rdf-schema/ , W3C, 02/10/2004, retrieved 05/14/2008.

BG07     Bizer, C., Gauß, T.: RDF Book Mashup. URL: http:// sites.wiwiss.fu-berlin.
         de/ suhl/ bizer/ bookmashup/ , Web-based Systems Group, 08/14/2007, re-
         trieved 05/07/2008.

BGC07    Bizer, C., Gauß, T., Cyganiak, R.: Semantic Web Client Library. URL: http://
         sites.wiwiss.fu-berlin.de/ suhl/ bizer/ ng4j/ semwebclient/ , Web-based Systems
         Group, 04/19/2007, retrieved 05/07/2008.

BL98     Berners-Lee, T.:    Semantic Web Road map.         URL: http:// www.w3.org/
         DesignIssues/ Semantic.html , W3C, 10/14/1998, retrieved 05/06/2008.

BL07a    Berners-Lee, T.:    Linked Data.     URL: http:// www.w3.org/ DesignIssues/
         LinkedData.html , 05/02/2007, retrieved 05/06/2008.

                                         70
                                                                          BIBLIOGRAPHY


BL07b      Berners-Lee, T.: Tim Berners-Lee on the Semantic Web (Video). URL: http://
           www.technologyreview.com/ Infotech/ 18451/ , Technology Review, 03/27/2007,
           retrieved 05/06/2008.

BLCC+ 06 Berners-Lee, T., Chen, Y., Chilton, L., Connolly, D., Dhanaraj, R., Hollenbach,
           J., Lerer, A., Sheets, D.: Tabulator: Exploring and Analyzing linked data on
           the Semantic Web. In: Proceedings of the 3rd International Semantic Web
           User Interaction Workshop, 2006. URL: http:// swui.semanticweb.org/ swui06/
           papers/ Berners-Lee/ Berners-Lee.pdf , retrieved 05/23/2008.

Ble05      Bleecker, J.:    A Design Approach for the Geospatial Web.                  URL:
           http:// www.oreillynet.com/ pub/ a/ network/ 2005/ 06/ 07/ geospatialweb.html ,
           O’Reilly Network, 06/07/2005, retrieved 05/07/2008.

BLFM05     Berners-Lee, T., Fielding, R., Masinter, L.: Uniform Resource Identifier (URI):
           Generic Syntax – Request for Comments.            URL: http:// www.ietf.org/ rfc/
           rfc3986.txt, IETF, January 2005, retrieved 05/07/2008.

BLHL01     Berners-Lee, T., Hendler, J., Lassila, O.: The Semantic Web.            Scientific
           American 284(5), May 2001, p. 34–44.

BLHL+ 08 Berners-Lee, T., Hollenbach, J., Lu, K., Presbrey, J., Prud’ommeaux,
           E., Schraefel, M.:      Tabulator Redux:      Browsing and Writing Linked
           Data.     In:    1st Workshop about Linked Data on the Web (LDOW
           2008), April 2008.      URL: http:// events.linkeddata.org/ ldow2008/ papers/
           11-berners-lee-hollenbach-tabulator-redux.pdf ,        03/02/2008,      retrieved
           06/10/2008.

BLMM94 Berners-Lee, T., Masinter, L., McCahill, M. (eds.): Uniform Resource Locators
           (URL) – Request for Comments. URL: http:// www.ietf.org/ rfc/ rfc1738.txt,
           IETF, December 1994, retrieved 05/29/2008.

BLP05      Bizer, C., Lee, R., Pietriga, E. (eds.): Fresnel - Display Vocabulary for RDF
           - User Manual.     URL: http:// www.w3.org/ 2005/ 04/ fresnel-info/ manual/ ,
           06/30/2005, retrieved 05/21/2008.

BM07       Brickley, D., Miller, L.: FOAF Vocabulary Specification 0.91. URL: http:
           // xmlns.com/ foaf/ spec/ , 2007/11/02, retrieved 05/20/2008.

BPSM+ 06 Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., Yergeau, F., Cowan,
           J. (eds.): Extensible Markup Language (XML) 1.1 (Second Edition) – W3C
           Recommendation. URL: http:// www.w3.org/ TR/ xml11/ , W3C, 09/26/2006,
           retrieved 05/24/2008.


                                            71
                                                                       BIBLIOGRAPHY


Bra08      Bratt, S.: Fast Forward: Get Ready for Web 3.0. In: bdigital Global Congress.
           W3C, 2008.      URL: http:// www.w3.org/ 2008/ Talks/ 0520-bratt-BDigital/
           W3C-Web-3.0p.pdf , 05/20/2008, retrieved 06/09/2008.

Bri06      Brickley, D. (ed.): Basic Geo (WGS84 lat/long) Vocabulary. URL: http://
           www.w3.org/ 2003/ 01/ geo/ , W3C Semantic Web Interest Group, 02/01/2006,
           retrieved 05/07/2008.

BS04       Bizer, C., Seaborne, A.: D2RQ - Treating Non-RDF Databases as Virtual
           RDF Graphs. In: 3rd International Semantic Web Conference - Posters and
           Demonstrations, November 2004. URL: http:// sites.wiwiss.fu-berlin.de/ suhl/
           bizer/ pub/ Bizer-D2RQ-ISWC2004-Poster.pdf .

BvHH+ 04 Bechhofer, S., van Harmelen, F., Hendler, J., Horrocks, I., McGuinness, D. L.,
           Patel-Schneider, P. F., Stein, L. A.: OWL Web Ontology Language Reference
           – W3C Recommendation.         URL: http:// www.w3.org/ TR/ owl-ref/ , W3C,
           02/10/2004, retrieved 05/16/2008.

BW07       Bizer, C., Westphal, D.:      Developers Guide to Semantic Web Toolkits
           for different Programming Languages.        URL: http:// sites.wiwiss.fu-berlin.
           de/ suhl/ bizer/ toolkits/ , Web-based Systems Group, 01/15/2007, retrieved
           05/06/2008.

CBHS05     Carroll, J. J., Bizer, C., Hayes, P. J., Stickler, P.: Named graphs. Journal of
           Web Semantics 3(4), 2005, p. 247–267.

Çel08a     Çelik, T. (ed.): geo.    URL: http:// microformats.org/ wiki/ geo, Microfor-
           mats.org, 01/23/2008, retrieved 05/07/2008.

Çel08b     Çelik,   T. (ed.):   hCard.      URL: http:// microformats.org/ wiki/ hcard ,
           Microformats.org, 05/02/2008, retrieved 05/07/2008.

CFT08      Clark, K. G., Feigenbaum, L., Torres, E. (eds.): SPARQL Protocol for RDF
           – W3C Recommendation. URL: http:// www.w3.org/ TR/ rdf-sparql-protocol/ ,
           W3C, 01/15/2008, retrieved 05/07/2008.

CJ06       C.J. Driscoll and Associates: 2006-07 LBS, Telematics and Navigation Systems
           Study, 2006, as cited by [Sch07a].

CM06       Connolly, D., Miller, L.: RDF Calendar Workspace. URL: http:// www.w3.
           org/ 2002/ 12/ cal/ , W3C Semantic Web Interest Group, 10/09/2006, retrieved
           05/15/2008.




                                           72
                                                                       BIBLIOGRAPHY


Con07     Connolly, D. (ed.): Gleaning Resource Descriptions from Dialects of Languages
          (GRDDL) – W3C Recommendation. URL: http:// www.w3.org/ TR/ grddl/ ,
          W3C, 09/11/2007, retrieved 05/07/2008.

CR04      Carroll, J. J., Roo, J. D. (eds.): OWL Web Ontology Language Test Cases
          – W3C Recommendation.        URL: http:// www.w3.org/ TR/ owl-test/ , W3C,
          02/10/2004, retrieved 05/16/2008.

Cyg08     Cyganiak, R.: The Linking Open Data dataset cloud. URL: http:// richard.
          cyganiak.de/ 2007/ 10/ lod/ , 03/31/2008, retrieved 05/07/2008.

DBp08a    DBpedia: ChangeLog. URL: http:// wiki.dbpedia.org/ Changelog, 02/09/2008,
          retrieved 05/20/2008.

DBp08b    DBpedia: The DBpedia Dataset.         URL: http:// wiki.dbpedia.org/ Datasets,
          02/27/2008, retrieved 05/20/2008.

Dey01     Dey, A. K.: Understanding and Using Context.          Personal and Ubiquitous
          Computing 5(1), 2001, p. 4–7.

DKK07     Daviel, A., Kaegi, F. A., Kofahl, M.: Geographic extensions for HTTP
          transactions – Internet Draft.     URL: http:// www.ietf.org/ internet-drafts/
          draft-daviel-http-geo-header-05.txt, IETF, 12/07/2007, retrieved 05/07/2008.

Eur02     Directive 2002/22/EC of the European Parliament and of the Council of
          7 March 2002 on universal service and users’ rights relating to electronic
          communications networks and services (Universal Service Directive). Official
          Journal of the European Union L 108, April 2002, p. 51–77.

Fed04     911 Service. U.S. Code of Federal Regulations Title 47, Pt. 20.18, October 2004,
          p. 16–20.

FGM+ 99   Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P.,
          Berners-Lee, T.: Hypertext Transfer Protocol - HTTP/1.1.            URL: http:
          // www.ietf.org/ rfc/ rfc2616.txt, 06/1999, retrieved 05/24/2008.

FT02      Fielding, R. T., Taylor, R. N.:       Principled design of the modern Web
          architecture. ACM Transactions on Internet Technology 2(2), 2002, p. 115–
          150.

GB04      Grant, J., Beckett, D. (eds.): RDF Test Cases – W3C Recommendation.
          URL: http:// www.w3.org/ TR/ rdf-testcases/ , W3C, 02/10/2004, retrieved
          05/14/2008.



                                           73
                                                                      BIBLIOGRAPHY


Geo08   GeoRSS: GeoRSS - Geographically Encoded Objects for RSS feeds. URL:
        http:// www.georss.org/ , 05/07/2008, retrieved 05/07/2008.

Goo08   Google Inc.: About KML - Google Earth User Guide. URL: http:// earth.
        google.com/ userguide/ v4/ ug_kml.html , 05/07/2008, retrieved 05/07/2008.

Hay04   Hayes, P. (ed.): RDF Semantics – W3C Recommendation. URL: http:// www.
        w3.org/ TR/ rdf-mt/ , W3C, 02/10/2004, retrieved 05/14/2008.

Hef04   Heflin, J. (ed.): OWL Web Ontology Language Use Cases and Requirements
        – W3C Recommendation. URL: http:// www.w3.org/ TR/ webont-req/ , W3C,
        02/10/2004, retrieved 05/16/2008.

Her08   Herman, I.: W3C Semantic Web Activity. URL: http:// www.w3.org/ 2001/
        sw/ , W3C, 05/01/2008, retrieved 05/14/2008.

IDC06   IDC: U.S. Wireless Business Location-Based Services 2006-2010 Forecast,
        September 2006, as cited by [Sch07a].

Inf07   Informa Telecoms & Media:        Global mobile penetration hits 50% to-
        day.    URL: http:// www.telecoms.com/ itmgcontent/ tcoms/ news/ articles/
        20017483752.html , 11/29/2007, retrieved 05/07/2008.

Int96   International Organization for Standardization: ISO/IEC 14977:1996 - Ex-
        tended BNF. URL: http:// standards.iso.org/ ittf/ PubliclyAvailableStandards/
        s026153_ISO_IEC_14977_1996( E).zip, 12/15/1996, retrieved 05/28/2008.

ISW07   ISWeb: Working Group Information Systems and Semantic Web: Distributed
        SPARQL. URL: http:// www.uni-koblenz.de/ FB4/ Institutes/ IFI/ AGStaab/
        Research/ DistributedSPARQL, 08/07/2007, retrieved 05/07/2008.

Jon07   Jones, M. T.: Google’s Geospatial Organizing Principle.        IEEE Computer
        Graphics and Applications 27(4), 2007, p. 8–13.

JW04    Jacobs, I., Walsh, N. (eds.): Architecture of the World Wide Web, Volume
        One – W3C Recommendation. URL: http:// www.w3.org/ TR/ webarch/ , W3C,
        12/15/2004, retrieved 06/01/2008.

Kay07   Kay,   M. (ed.):    XSL Transformations (XSLT) Version 2.0 – W3C
        Recommendation. URL: http:// www.w3.org/ TR/ xslt20/ , W3C, 01/23/2007,
        retrieved 05/24/2008.

KC04    Klyne, G., Carroll, J. J. (eds.): Resource Description Framework (RDF):
        Concepts and Abstract Syntax – W3C Recommendation. URL: http:// www.
        w3.org/ TR/ rdf-concepts/ , W3C, 02/10/2004, retrieved 05/06/2008.

                                       74
                                                                        BIBLIOGRAPHY


KM00      Kristol, D. M., Montulli, L.: HTTP State Management Mechanism. URL:
          http:// tools.ietf.org/ rfc/ rfc2965.txt, October 2000, retrieved 05/31/2008.

Kos04     Koss, M. C.: US Patent 6,731,612: Location-based web browsing, May 2004.

LCC+ 05   LaMarca, A., Chawathe, Y., Consolvo, S., Hightower, J., Smith, I. E., Scott, J.,
          Sohn, T., Howard, J., Hughes, J., Potter, F., Tabert, J., Powledge, P., Borriello,
          G., Schilit, B. N.: Place Lab: Device Positioning Using Radio Beacons in the
          Wild. In: Gellersen, H.-W., Want, R., Schmidt, A. (eds.): Pervasive, volume
          3468 of Lecture Notes in Computer Science, p. 116–133. Springer, 2005.

Lee05     Lee, R.: Sample Fresnel XML output. URL: http:// simile.mit.edu/ mail/
          ReadMsg? listId=12&msgId=6446 , 10/05/2005, retrieved 05/22/2008.

LH04      Le Hégaret, P.: Document Object Model (DOM) Technical Reports. URL:
          http:// www.w3.org/ DOM/ DOMTR, W3C, 07/08/2004, retrieved 05/26/2008.

Ło08      Łoskot, M.: WCELIBCEX - Windows CE C Library Extensions. URL: http:
          // wcelibcex.sourceforge.net/ , 05/11/2008, retrieved 05/25/2008.

Loc06     Lockenwitz, P.: Mobile Browser Service & Volume. URL: http:// www.w3.org/
          2007/ 03/ Mobile_Browser_developments_V4_-_Public_Version.pdf , Nokia
          Corporation, 04/28/2006, retrieved 05/26/2008.

LSG07     Lieberman, J., Singh, R., Goad, C.:           W3C Geospatial Vocabulary –
          W3C Incubator Group Report. URL: http:// www.w3.org/ 2005/ Incubator/
          geo/ XGR-geo/ , W3C Geospatial Incubator Group, 10/23/2007, retrieved
          05/07/2008.

Mic08a    Microformats.org: hCard Implementations. URL: http:// microformats.org/
          wiki/ hcard-implementations, 03/23/2008, retrieved 05/07/2008.

Mic08b    Microsoft Corporation:     Buy Windows Mobile Powered Smartphones and
          PDAs - Microsoft Windows Mobile.             URL: http:// www.microsoft.com/
          windowsmobile/ devices/ default.mspx , 05/26/2008, retrieved 05/26/2008.

Mic08c    Microsoft Corporation: GPS Intermediate Driver - Shared Windows Mobile 6
          and Windows Embedded CE 6.0 Library. URL: http:// msdn.microsoft.com/
          en-us/ library/ bb202086.aspx , 03/25/2008, retrieved 05/27/2008.

Mic08d    Microsoft Corporation: HTML Control API. URL: http:// msdn.microsoft.
          com/ en-us/ library/ bb159830.aspx , 03/25/2008, retrieved 05/26/2008.

Mic08e    Microsoft Corporation: Microsoft Unveils Smartphone Advancements to Im-
          prove Ability to Work and Play with One Phone. URL: http:// www.microsoft.

                                           75
                                                                    BIBLIOGRAPHY


         com/ presspass/ press/ 2008/ apr08/ 04-01WM61PR.mspx ,      04/03/2008,   re-
         trieved 05/26/2008.

Mic08f   Microsoft Corporation:      Windows Mobile for Developers.       URL: http:
         // www.microsoft.com/ windowsmobile/ developers/ default.mspx , 06/08/2008,
         retrieved 06/08/2008.

MM04     Manola, F., Miller, E. (eds.):        RDF Primer – W3C Recommendation.
         URL: http:// www.w3.org/ TR/ rdf-primer/ , W3C, 02/10/2004, retrieved
         05/14/2008.

MvH04    McGuinness, D. L., van Harmelen, F. (eds.):            OWL Web Ontology
         Language Overview – W3C Recommendation. URL: http:// www.w3.org/ TR/
         owl-features/ , W3C, 02/10/2004, retrieved 05/07/2008.

MyS08    MySQL AB: MySQL 5.1 Reference Manual. URL: http:// downloads.mysql.
         com/ docs/ refman-5.1-en.a4.pdf , 06/05/2008, retrieved 06/05/2008.

Nok04    Nokia Corporation: S60 Platform - Location Acquisition API Specification.
         URL:          http:// sw.nokia.com/ id/ 0fd3623b-8f6d-436f-9a00-3b4d7d69bab3/
         series_60_location_acquisition_api_specification_b.pdf ,          11/11/2004,
         retrieved 05/07/2008.

Nok06a   Nokia Corporation: JSR 179 - Location API for J2METM . URL: http:// sw.
         nokia.com/ id/ 56a9a94a-ab11-4f6a-84c4-4ee7ada2a7e8 , 03/31/2006, retrieved
         06/09/2008.

Nok06b   Nokia Corporation: Nokia Internal Forecast, 2006, as cited by [Loc06].

Nok07    Nokia Corporation: Nokia to acquire NAVTEQ. URL: http:// www.nokia.com/
         A4136001? newsid=1157198 , 10/01/2007, retrieved 05/07/2008.

NS05     Nottingham, M., Sayre, R. (eds.): The Atom Syndication Format – Request
         for Comments. URL: http:// www.ietf.org/ rfc/ rfc4287.txt, IETF, December
         2005, retrieved 05/07/2008.

O08      O2 (Germany) GmbH & Co. OHG: o2 Xda orbit 2. URL: http:// www.o2online.
         de/ handys/ Marken/ o2/ o2-Xda-orbit-2.html#technisches, 05/07/2008, re-
         trieved 05/07/2008.

Ope07    Open Geospatial Consortium, Inc.: Mass Market Geospatial. URL: http://
         www.opengeospatial.org/ ogc/ markets-technologies/ mass-market, 03/28/2007,
         retrieved 05/07/2008.



                                          76
                                                                        BIBLIOGRAPHY


Ope08a    Open Geospatial Consortium, Inc.:         About OGC.         URL: http:// www.
          opengeospatial.org/ ogc, 05/07/2008, retrieved 05/07/2008.

Ope08b    Open Geospatial Consortium, Inc.: Geospatial Semantic Web Interoperability
          Experiment. URL: http:// www.opengeospatial.org/ projects/ initiatives/ gswie,
          05/07/2008, retrieved 05/07/2008.

Ope08c    Open Geospatial Consortium, Inc.:         OGC R Approves KML as Open
          Standard. URL: http:// www.opengeospatial.org/ pressroom/ pressreleases/ 857 ,
          04/14/2008, retrieved 05/07/2008.

Ope08d    Open Geospatial Consortium, Inc.:         OGC KML.           URL: http:// www.
          opengeospatial.org/ standards/ kml , 05/07/2008, retrieved 05/07/2008.

Ope08e    Open Geospatial Consortium, Inc.: OpenGIS Geography Markup Language
          (GML) Encoding Standard. URL: http:// www.opengeospatial.org/ standards/
          gml , 05/07/2008, retrieved 05/07/2008.

Ope08f    Open Geospatial Consortium, Inc.: OpenGIS Web Feature Service (WFS) Im-
          plementation Specification. URL: http:// www.opengeospatial.org/ standards/
          wfs, 05/07/2008, retrieved 05/07/2008.

Ope08g    OpenLink Software, Inc.:       Virtuoso Sponger.        URL: http:// virtuoso.
          openlinksw.com/ dataspace/ dav/ wiki/ Main/ VirtSponger ,          06/11/2008,
          retrieved 06/11/2008.

O’R05     O’Reilly, T.: What Is Web 2.0 – Design Patterns and Business Models for
          the Next Generation of Software.       URL: http:// www.oreillynet.com/ pub/
          a/ oreilly/ tim/ news/ 2005/ 09/ 30/ what-is-web-20.html ,   O’Reilly Network,
          09/30/2005, retrieved 05/14/2008.

PAA+ 02   Pemberton, S., Austin, D., Axelsson, J., Çelik, T., Dominiak, D., Elenbaas, H.,
          Epperson, B., Ishikawa, M., Matsui, S., McCarron, S., Navarro, A., Peruvemba,
          S., Relyea, R., Schnitzenbaumer, S., Stark, P.: XHTMLTM 1.0 The Extensible
          HyperText Markup Language (Second Edition), A Reformulation of HTML 4
          in XML 1.0 - W3C Recommendation. URL: http:// www.w3.org/ TR/ xhtml1/ ,
          W3C, 08/01/2002, retrieved 05/24/2008.

Pas08     Passant, A.: Social, mobile, semantic. URL: http:// apassant.net/ blog/ 2008/
          04/ 24/ social-mobile-semantic/ , 04/24/2008, retrieved 06/12/2008.

PBKL06    Pietriga, E., Bizer, C., Karger, D., Lee, R.: Fresnel: A Browser-Independent
          Presentation Vocabulary for RDF. In: Cruz, I. F., Decker, S., Allemang, D.,
          Preist, C., Schwabe, D., Mika, P., Uschold, M., Aroyo, L. (eds.): International

                                           77
                                                                      BIBLIOGRAPHY


         Semantic Web Conference, volume 4273 of Lecture Notes in Computer Science,
         p. 158–171. Springer, 2006. URL: http:// dblp.uni-trier.de/ db/ conf/ semweb/
         iswc2006.html#PietrigaBKL06 .

Pie05    Pietriga, E. (ed.): Fresnel Selector Language for RDF (FSL). URL: http://
         www.w3.org/ 2005/ 04/ fresnel-info/ fsl/ , 11/18/2005, retrieved 05/22/2008.

Pos81    Postel, J. (ed.): Internet Protocol – Request for Comments. URL: http:// www.
         ietf.org/ rfc/ rfc791.txt, IETF, September 1981, retrieved 05/24/2008.

Pro08a   ProgrammableWeb.com:       API Tag Search:        mapping.        URL: http://
         programmableweb.com/ apitag/ mapping/ 1? sort=mashups,          05/07/2008,   re-
         trieved 05/07/2008.

Pro08b   ProgrammableWeb.com:       Mashup Tag Search:        mapping.     URL: http://
         programmableweb.com/ tag/ mapping, 05/07/2008, retrieved 05/07/2008.

PS08     Prud’hommeaux, E., Seaborne, A. (eds.): SPARQL Query Language for RDF
         – W3C Recommendation. URL: http:// www.w3.org/ TR/ rdf-sparql-query/ ,
         W3C, 01/15/2008, retrieved 05/07/2008.

PSHH04   Patel-Schneider, P. F., Hayes, P., Horrocks, I. (eds.): OWL Web Ontology
         Language Semantics and Abstract Syntax – W3C Recommendation. URL: http:
         // www.w3.org/ TR/ owl-semantics/ , W3C, 02/10/2004, retrieved 05/16/2008.

PZL08    Pautasso, C., Zimmermann, O., Leymann, F.: RESTful Web Services vs.
         “Big” Web Services: Making the Right Architectural Decision. In: WWW
         ’08: Proceedings of the 17th international conference on World Wide Web, p.
         805–814. ACM, New York, NY, USA, 2008.

Qui06    Quilitz, B.: DARQ - Federated Queries with SPARQL. URL: http:// darq.
         sourceforge.net, 06/28/2006, retrieved 05/07/2008.

RHJ99    Raggett, D., Hors, A. L., Jacobs, I. (eds.): HTML 4.01 Specification –
         W3C Recommendation. URL: http:// www.w3.org/ TR/ REC-html40/ , W3C,
         12/24/1999, retrieved 05/22/2008.

RM06     Rabin, J., McCathieNevile, C. (eds.): Mobile Web Best Practices 1.0, Basic
         Guidelines – W3C Proposed Recommendation. URL: http:// www.w3.org/ TR/
         mobile-bp/ , W3C, 11/02/2006, retrieved 05/07/2008.

RSS07    RSS Advisory Board: RSS 2.0 Specification, version 2.0.10. URL: http:// www.
         rssboard.org/ rss-specification, 10/15/2007, retrieved 05/07/2008.



                                         78
                                                                           BIBLIOGRAPHY


SAL+ 96   Stonebraker, M., Aoki, P. M., Litwin, W., Pfeffer, A., Sah, A., Sidell, J., Staelin,
          C., Yu, A.: Mariposa: a wide-area distributed database system. The VLDB
          Journal 5(1), 1996, p. 048–063.

SBLH06    Shadbolt, N., Berners-Lee, T., Hall, W.: The Semantic Web Revisited. IEEE
          Intelligent Systems 21(3), 2006, p. 96–101.

SC08      Sauermann, L., Cyganiak, R. (eds.): Cool URIs for the Semantic Web – W3C
          Interest Group Note. URL: http:// www.w3.org/ TR/ cooluris/ , W3C Semantic
          Web Education and Outreach (SWEO) Interest Group, 03/31/2008, retrieved
          06/01/2008.

Sch07a    Schreiner, K.: Where We At? Mobile Phones Bring GPS to the Masses. IEEE
          Computer Graphics and Applications 27(3), 2007, p. 6–11.

Sch07b    Schroepfer, M.:     Mozilla and Mobile.          URL: http:// weblogs.mozillazine.
          org/ schrep/ archives/ 2007/ 10/ mozilla_and_mobile.html , Mozilla Founda-
          tion, 10/09/2007, retrieved 05/07/2008.

SH08      Scott, T., Humfrey, N.:          The Programmes Ontology – making BBC
          programme metadata accessible to all. In: XTech 2008. British Broadcasting
          Corporation,    2008.       URL: http:// assets.expectnation.com/ 15/ event/ 3/
          The% 20Programmes% 20Ontology% 20Paper% 201.pdf , 03/08/2008, retrieved
          06/12/2008.

Sin92     Sinha, A.: Client-server computing. Communications of the ACM 35(7), 1992,
          p. 77–98.

SKW07     Suchanek, F. M., Kasneci, G., Weikum, G.: Yago: a core of semantic
          knowledge. In: WWW ’07: Proceedings of the 16th international conference on
          World Wide Web, p. 697–706. ACM, New York, NY, USA, 2007.

Sou07     SourceForge.net:        [Virtuoso-users]    Getting   seeAlso   dereferencing   and
          owl:sameAs inference working.           URL: http:// sourceforge.net/ mailarchive/
          forum.php? thread_name=003d01c804e7% 24fded6850% 241400000a%
          40celsius&forum_name=virtuoso-users, October 2007, retrieved 06/02/2008.

ST94      Schilit, B., Theimer, M.: Disseminating Active Map Information to Mobile
          Hosts. IEEE Network 8(5), 1994, p. 22–32.

Sun08     Sun Microsystems, Inc.: The Java ME Device Table. URL: http:// developers.
          sun.com/ mobility/ device/ device, 05/25/2008, retrieved 05/25/2008.




                                             79
                                                                     BIBLIOGRAPHY


SVHB04   Stuckenschmidt, H., Vdovjak, R., Houben, G.-J., Broekstra, J.:          Index
         structures and algorithms for querying distributed RDF repositories. In: WWW
         ’04: Proceedings of the 13th international conference on World Wide Web, p.
         631–639. ACM, New York, NY, USA, 2004.

SWM04    Smith, M. K., Welty, C., McGuinness, D. L. (eds.): OWL Web Ontology
         Language Guide – W3C Recommendation. URL: http:// www.w3.org/ TR/
         owl-guide/ , W3C, 02/10/2004, retrieved 05/07/2008.

Sym04    Symbian Ltd.: Design and implementation of STDLIB. 01/22/2004, retrieved
         05/24/2008.

Sym07    Symbian Ltd.: Symbian Phones. URL: http:// www.symbian.com/ phones/
         index.html , 05/26/2008, retrieved 05/26/2008.

UIQ07    UIQ Technology AB: UIQ Controls - Rich Text Editor.                     URL:
         http:// developer.uiq.com/ devlib/ uiq_31/ SDKDocumentation/ doc_
         source/ guide/ uiqhowtos/ UIQControls/ Controls_QEikStd/ UIQControls_
         Rich_Text_Editor/ UIQControls_HowTo_Rich_Text_Editor.guide.html#
         UIQControls_HowTo_Rich_Text_Editor% 2eguide,           06/14/2007,   retrieved
         05/24/2008.

Uni07    United States Library of Congress:         Codes for the Representation of
         Names of Languages - Codes arranged alphabetically by alpha-3/ISO 639-
         2 Code.   URL: http:// www.loc.gov/ standards/ iso639-2/ php/ code_list.php,
         11/26/2007, retrieved 05/29/2008.

US04     U.S. National Geospatial-Intelligence Agency:        NIMA Technical Report
         TR8350.2, “Department of Defense World Geodetic System 1984, Its Definition
         and Relationships With Local Geodetic Systems”, Third Edition, Amendement
         2. URL: http:// earth-info.nga.mil/ GandG/ publications/ tr8350.2/ wgs84fin.
         pdf , 06/23/2004, retrieved 05/07/2008.

W3C06    W3C ESW Wiki: OpeningHoursUseCase. URL: http:// esw.w3.org/ topic/
         OpeningHoursUseCase, 12/14/2006, retrieved 05/15/2008.

W3C07a   W3C Geospatial Incubator Group:           Geo OWL.     URL: http:// www.w3.
         org/ 2005/ Incubator/ geo/ XGR-geo/ W3C_XGR_Geo_files/ geo_2007.owl ,
         10/24/2007, retrieved 06/05/2008.

W3C07b   W3C Technical Architecture Group: TAG Issues List. URL: http:// www.w3.
         org/ 2001/ tag/ issues.html , 2007/10/23, retrieved 06/05/2008.



                                         80
                                                                    BIBLIOGRAPHY


W3C08a   W3C ESW Wiki:           ConverterToRdf.     URL: http:// esw.w3.org/ topic/
         ConverterToRdf , 03/21/2008, retrieved 05/07/2008.

W3C08b   W3C ESW Wiki:          LargeTripleStores.   URL: http:// esw.w3.org/ topic/
         LargeTripleStores, 04/28/2008, retrieved 05/23/2008.

W3C08c   W3C ESW Wiki:          SemanticWebTools.     URL: http:// esw.w3.org/ topic/
         SemanticWebTools, 04/29/2008, retrieved 05/23/2008.

W3C08d   W3C ESW Wiki: SparqlImplementations. URL: http:// esw.w3.org/ topic/
         SparqlImplementations, 04/16/2008, retrieved 05/23/2008.

W3C08e   W3C ESW Wiki: SparqlUpdateLanguage. URL: http:// esw.w3.org/ topic/
         SparqlUpdateLanguage, 02/07/2008, retrieved 05/23/2008.

W3C08f   W3C Semantic Web Education and Outreach (SWEO) Interest Group: Linking
         Open Data, W3C SWEO Community Project. URL: http:// esw.w3.org/ topic/
         SweoIG/ TaskForces/ CommunityProjects/ LinkingOpenData, 05/21/2008, re-
         trieved 06/01/2008.

WGM00    Wang, S. S., Green, M., Malkawi, M.: E-911 location standards and location
         commercial services.    In: Emerging Technologies Symposium: Broadband,
         Wireless Internet Access, p. 1–5. IEEE, 2000.

Wic08    Wick, M.: Geotagged Wikipedia Articles. URL: http:// geonames.wordpress.
         com/ 2008/ 04/ 02/ geotagged-wikipedia-articles/ , GeoNames, 04/02/2008, re-
         trieved 05/21/2008.

Wik08    Wikipedia: Wikipedia Article Export: Free_University_of_Berlin.         URL:
         http:// en.wikipedia.org/ wiki/ Special:Export/ Free_University_of_Berlin,
         06/11/2008, retrieved 06/12/2008.

Yom07    Yomogita, H.: Mobile GPS Accelerates Chip Development. URL: http://
         techon.nikkeibp.co.jp/ article/ HONSHI/ 20070424/ 131605/ , Nikkei Electron-
         ics Asia, May 2007, retrieved 05/07/2008.

ZS06     Zaidi, A., Suddle, M.: Global Navigation Satellite Systems: A Survey. In: 2006
         International Conference on Advances in Space Technologies, p. 84–87. IEEE,
         2006.




                                         81

				
DOCUMENT INFO
ghkgkyyt ghkgkyyt
About