Linked data from your pocket: The Android RDFContentProvider

Similar documents
Linked data from your pocket

Assisted Policy Management for SPARQL Endpoints Access Control

D6.3 Mobile API for linked data

An FCA Framework for Knowledge Discovery in SPARQL Query Answers

A linked data framework for Android

QAKiS: an Open Domain QA System based on Relational Patterns

Scalewelis: a Scalable Query-based Faceted Search System on Top of SPARQL Endpoints

BoxPlot++ Zeina Azmeh, Fady Hamoui, Marianne Huchard. To cite this version: HAL Id: lirmm

Multimedia CTI Services for Telecommunication Systems

Fault-Tolerant Storage Servers for the Databases of Redundant Web Servers in a Computing Grid

HySCaS: Hybrid Stereoscopic Calibration Software

Tacked Link List - An Improved Linked List for Advance Resource Reservation

Sewelis: Exploring and Editing an RDF Base in an Expressive and Interactive Way

YANG-Based Configuration Modeling - The SecSIP IPS Case Study

Change Detection System for the Maintenance of Automated Testing

Blind Browsing on Hand-Held Devices: Touching the Web... to Understand it Better

LaHC at CLEF 2015 SBS Lab

Comparator: A Tool for Quantifying Behavioural Compatibility

Mokka, main guidelines and future

Relabeling nodes according to the structure of the graph

How to simulate a volume-controlled flooding with mathematical morphology operators?

Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces

A Resource Discovery Algorithm in Mobile Grid Computing based on IP-paging Scheme

IntroClassJava: A Benchmark of 297 Small and Buggy Java Programs

Syrtis: New Perspectives for Semantic Web Adoption

A Voronoi-Based Hybrid Meshing Method

Open Digital Forms. Hiep Le, Thomas Rebele, Fabian Suchanek. HAL Id: hal

YAM++ : A multi-strategy based approach for Ontology matching task

Application of RMAN Backup Technology in the Agricultural Products Wholesale Market System

Setup of epiphytic assistance systems with SEPIA

Formal modelling of ontologies within Event-B

Catalogue of architectural patterns characterized by constraint components, Version 1.0

Service Reconfiguration in the DANAH Assistive System

X-Kaapi C programming interface

Malware models for network and service management

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Modularity for Java and How OSGi Can Help

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

The New Territory of Lightweight Security in a Cloud Computing Environment

Comparison of spatial indexes

Boosting QAKiS with multimedia answer visualization

Deformetrica: a software for statistical analysis of anatomical shapes

Every 3-connected, essentially 11-connected line graph is hamiltonian

Linux: Understanding Process-Level Power Consumption

QuickRanking: Fast Algorithm For Sorting And Ranking Data

MUTE: A Peer-to-Peer Web-based Real-time Collaborative Editor

Computing and maximizing the exact reliability of wireless backhaul networks

Study on Feebly Open Set with Respect to an Ideal Topological Spaces

Quality of Service Enhancement by Using an Integer Bloom Filter Based Data Deduplication Mechanism in the Cloud Storage Environment

Structuring the First Steps of Requirements Elicitation

Real-time FEM based control of soft surgical robots

Natural Language Based User Interface for On-Demand Service Composition

Simulations of VANET Scenarios with OPNET and SUMO

Light field video dataset captured by a R8 Raytrix camera (with disparity maps)

RDF/SPARQL Design Pattern for Contextual Metadata

XBenchMatch: a Benchmark for XML Schema Matching Tools

KeyGlasses : Semi-transparent keys to optimize text input on virtual keyboard

FStream: a decentralized and social music streamer

Scan chain encryption in Test Standards

Representation of Finite Games as Network Congestion Games

Real-Time Collision Detection for Dynamic Virtual Environments

Mapping classifications and linking related classes through SciGator, a DDC-based browsing library interface

Traffic Grooming in Bidirectional WDM Ring Networks

DANCer: Dynamic Attributed Network with Community Structure Generator

Branch-and-price algorithms for the Bi-Objective Vehicle Routing Problem with Time Windows

A 64-Kbytes ITTAGE indirect branch predictor

Taking Benefit from the User Density in Large Cities for Delivering SMS

NP versus PSPACE. Frank Vega. To cite this version: HAL Id: hal

A Methodology for Improving Software Design Lifecycle in Embedded Control Systems

Regularization parameter estimation for non-negative hyperspectral image deconvolution:supplementary material

Type Feedback for Bytecode Interpreters

Efficient implementation of interval matrix multiplication

FIT IoT-LAB: The Largest IoT Open Experimental Testbed

The Athena data dictionary and description language

A Logical Pattern for Integrating Business Intelligence into Information Systems Design

Monitoring Air Quality in Korea s Metropolises on Ultra-High Resolution Wall-Sized Displays

Graphe-Based Rules For XML Data Conversion to OWL Ontology

Stream Ciphers: A Practical Solution for Efficient Homomorphic-Ciphertext Compression

Moveability and Collision Analysis for Fully-Parallel Manipulators

THE COVERING OF ANCHORED RECTANGLES UP TO FIVE POINTS

The Connectivity Order of Links

On Code Coverage of Extended FSM Based Test Suites: An Initial Assessment

RecordMe: A Smartphone Application for Experimental Collections of Large Amount of Data Respecting Volunteer s Privacy

Improving figures using TikZ/PGF for LATEX: An Introduction

A Practical Evaluation Method of Network Traffic Load for Capacity Planning

Rule-Based Application Development using Webdamlog

Leveraging ambient applications interactions with their environment to improve services selection relevancy

Managing Risks at Runtime in VoIP Networks and Services

An Experimental Assessment of the 2D Visibility Complex

ASAP.V2 and ASAP.V3: Sequential optimization of an Algorithm Selector and a Scheduler

Developing interfaces for the TRANUS system

Prototype Selection Methods for On-line HWR

SDLS: a Matlab package for solving conic least-squares problems

Very Tight Coupling between LTE and WiFi: a Practical Analysis

The Proportional Colouring Problem: Optimizing Buffers in Radio Mesh Networks

A Short SPAN+AVISPA Tutorial

Improving Collaborations in Neuroscientist Community

Recommendation-Based Trust Model in P2P Network Environment

Lossless and Lossy Minimal Redundancy Pyramidal Decomposition for Scalable Image Compression Technique

SIM-Mee - Mobilizing your social network

Transcription:

Linked data from your pocket: The Android RDFContentProvider Jérôme David, Jérôme Euzenat To cite this version: Jérôme David, Jérôme Euzenat. Linked data from your pocket: The Android RDFContentProvider. Proc. 9th demonstration track on international semantic web conference (ISWC), Nov 2010, Shanghai, China. No commercial editor., pp.129-132, 2010. <hal-00793274> HAL Id: hal-00793274 https://hal.inria.fr/hal-00793274 Submitted on 22 Feb 2013 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pldisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Linked data from your pocket: The Android RDFContentProvider Jérôme David, Jérôme Euzenat INRIA & LIG Grenoble, France {Jerome.David,Jerome.Euzenat}@inrialpes.fr Smartphones are becoming main personal information repositories. Unfortunately this information is stored in independent silos managed by applications. We have seen that already: in the Palm operating system, application databases were only accessible when the application schemas were known and worked by opening other application databases. Our goal is to provide support for applications to deliver their data in RDF. This would allow applications to exploit this information in a uniform way without knowing beforehand application schemas. This would also connect this information to the semantic web and the web of data through reference from and to device information. We present a way to do this in a uniform manner within the Android platform. Moreover, we propose to do it along the linked data principles (provide RDF, describe in ontologies, use URIs, link other sources). We first consider how the integration of RDF could be further pushed within the context of the Android platform. We demonstrate its feasibility through a linked data browser that allows for browsing the phone information. 1 Providing RDF support in Android Android is built around different kinds of services, one of which being ContentProvider which exposes some data of an application to other applications. ContentProviders manage data structures (usually relational tables) and are able to answer messages of type, insert, delete and update. A returns a cursor on a table of. So they offer a typical database interface: Cursor ( Uri id, String[] proj, String select, String[] selectargs, String order ) Uri insert( Uri id, ContentValues colvaluelist) int update( Uri id, ContentValues colvaluelist, String select, String[] selectargs ) int delete( Uri id, String select, String[] selectargs ) String gettype( Uri id ) This interface uses URIs for identifying the kind of data which is requested: content://contacts/people/ identifies all people in the contact application and content://contacts/people/22 identifies the 22nd instance of these 1. Calling a ContentProvider is driven by the kind of content to be manipulated: the calling application indicates the will to retrieve some content through its type, but does not control which application will provide it. Android calls a ContentResolver which further looks into the (the id) to find a suitable content provider on the 1 Android URIs are not particularly portable, we leave the discussion of this out of this paper.

phone which is able to provide the required content. For that purpose, the resolver maps the URIs to the declared providers. These providers are declared in application manifests. In order to exchange RDF within the Android platform, we need ContentProviders providing RDF. For that purpose we have developed a new abstract RDFContentProvider extending ContentProvider. Answers to queries in an RDFContentProvider could be: set of triples, which would correspond to the description of one object and the attribute values, this is restricted to queries like: tell me what you know about a particular individual; table of, like in ContentProviders or SPARQL which would correspond to values of variable in a SPARQL-like These interfaces can be unified since, the former is the answer to the SPARQL : SELECT?p?o WHERE content://contacts/people/22?p?o. The RDFContentProvider follows primarily the same kind of interface as ContentProvider. The minimal interface for linked data applications is: RDFCursor getrdf( Uri id ) The Cursor iterates on a table of subject-object-predicate (or object-predicate) which are the triples involving the object given as a URI. A more elaborate semantic web interface could be that of a minimal SPARQL endpoint: Uri[] gettypes( Uri id ): returns the RDF types of a local URI; Uri[] getontologies(): ontologies used by the applications; Uri[] getqueryentities(): classes and relation that the application can deliver; Cursor ( SparqlQuery ): returns results tuple; Cursor getqueries(): triple patterns that the application can answer. So far, we have only developed this interface but the three first primitives. 2 Demonstration: linked data browser We have implemented a prototype of this architecture described in Figure 1. Precisely, we have implemented: RDFContentProvider: the provider interface; RDFContentResolver: which can decide to which class to redirect a ; Pikoid: a picture annotation application which implements RDFContentProvider; AndroidRDFProvider: an application encapsulating data access to the applications of the Android platform (Calendar, Contact, Map, etc.); RDFBrowser: a simple client for navigating within RDF data provided by these applications in a generic manner. 2

RDFBrowser Pikoid HTTPResolver RDFContentResolver AndroidRDFProvider Internet Phone Calendar Map Contact Fig. 1. The four implemented components and the communication between them. Communication with the web (dotted) is not implemented at submission time. In this demonstration, we will show how to quickly annotate a picture with the help of the standard Android applications (Pikoid), then we will use the RDFBrowser to navigate through these annotations provided as interrelated RDF statements. The beauty of linked data is that it is easy to understand how to navigate within this data through HTTP requests: each request (a URI) returns RDF from which URIs can be extracted for formulating further requests. The RDF browser acts as a linked data client except that it works over the Android content provider mechanism instead of HTTP: it asks triples about a particular URI, displays these and when clicked on, issue the same URI. Figure 2 shows the current interface. 3 Conclusion What we have to demonstrate is only a proof of concept that semantic technologies could be included uniformly in a portable platform with a minimal overhead. This would accomplish one integration step further since the seminal work of [1]. There is room for many developments on the basis of the RDFContentProvider interface, bringing our personal data silos closer to the semantic web. Many issues have not been considered in this first development, most importantly the connection to the web. From the Android device to the web, using REST over HTTP to reach (linked) RDF data is not a real problem. From the web to Android, implementing a HTTP server which acts as a REST proxy for Android data accessible to our RDFBrowser is not difficult either. The main issue is the conversion of Android local URIs to HTTP URIs. The system is available at http://swip.inrialpes.fr as several applications. It has been tested on the Android emulator and HTC Android 1.6 devices. Specific developments have been made for this version which would not be necessary in newer versions of Android. It is currently being tested on other devices. 3

Fig. 2. The Pikoid application annotates images with metadata stored as RDF. RDFBrowser allows for ing this information to the Pikoid RDFContentProvider interface and displaying it. The current picture metadata is shown in the second panel (pikoidrdfprovider/60). From there, it is possible to browse the information available in the address book (people/104) and the calendar (events/3) through the AndroidRDFProvider wrapper. Finally, RDFBrowser also allows for inspecting available RDFContentProviders and the ontologies they manipulate. References 1. Walsh, N.: Generalized metadata in your palm. In: Proc. 2nd Extreme markup languages conference, Montréal (PQ CA) (2002), http://conferences.idealliance.org/ extreme/html/2002/walsh01/eml2002walsh01.html 4 Acknowledgements We thank Yu Yang who has programmed part of this demonstration. 4