The Semantic API for the Delivery Context


What is SADiC ?

SADiC is a Java API for the processing, the validation and the interrogation of delivery context [1] information that is available by means of CC/PP [2]  and/or UAProf [3] profiles

SADiC complies with either the CC/PP and theUAProf specifications and is able to achieve semantic convergence between these standards at an RDF level.

SADiC overcomes the cumbersome problems arising from  the proliferation of multiple namespace URIs to refer to the same logical vocabulary (as for vocabulary multi-versioning) and is able to manage consistently vocabularies equivalence.

SADiC offers a rich set of programming interfaces that provide access to the data conveyed by a profile basing on different criteria. In particular, SADiC gives the possibility to access the attribute values directly as instances of specific data types. Further more, SADiC is able to print the RDF/XML serialization of a processed profile.

SADiC is able to manage complex profiles composed by multiple profiles acting as segments of an overall logical profile and to perform the profile resolution, i.e., to merge together the different segments and to construct the equivalent profile by applying the proper resolution policies when collisions occur.

SADiC is able to handle profiles that reference multiple vocabularies and to execute dynamically and seamlessly vocabulary-specific processing (as for validation vs. vocabulary constraints and data types, and profile resolution ) basing on the actual vocabularies referenced by the profile currently being processed.

SADiC is not tied to any vocabulary: the set of recognized vocabularies is not fixed and can be extended at every time. However, even for unknown vocabularies the processing of profiles is executed consistently by applying a default behavior when performing profile resolution and by providing a basic string-based access to attributes data.

SADiC provides simple extension facilities that can be exploited by developers in order to implement new processing semantics for new vocabularies as for new resolution policies and the validation of - either the type-based access to - attribute values belonging to new data types.  Once the new vocabularies have been correctly installed, their processing semantics are automatically and seamlessly applied for profiles that reference these vocabularies (without the need of any further action).

SADiC is completely protocol-independent and, therefore, is suitable for deployment and use in every application environment that is based on the Java technologies. 

SADiC provides a set of utility classes that facilitate the deployment and the interfacing in any specific application environment. These classes implement a generic protocol manager and provide the primitives to implement whatever specific protocol handler that can leverage the native communication facilities provided by whatever specific Java-based  platform. 

SADiC already provides two protocol handlers for use within a J2EE Web Tier, corresponding, respectively, to the CC/PP Exchange Protocol over HTTP (CC/PP ex) and the UAProf extension of the Wireless Profiled HTTP (W-HTTP). Further more, SADiC also provides the implementation of a simple Servlet Filter that leverages these handlers (by means of the generic protocol manager) in order to extract the CC/PP profiles communicated through an HTTP mechanism and to provide seamlessly  with the already processed profile the servlets or filters following in the processing chain of an HTTP request. 

SADiC is provided with suitable accessories that speed the processing of profiles, like a memory cache for storing already processed profiles and a local repository for faster retrieving of remote profiles.

SADiC provides many processing options that can even be set at runtime.


[1]   The term delivery context is used to indicate the set of parameters or attributes that characterize a client environment leveraged by a user to access the Web. This can comprehend the prerogatives of the used device and its equipment, the constraints of the network access channel and the preferences of the user. 
In order for the Web to be accessed in a device independent way it is necessary that its contents and services can be fruited consistently by means of heterogeneous devices, regardless of the specific device characteristics. In other words  it is necessary to develop delivery context-aware Web applications that are able to select or adapt contents and their formats to the specific requirements of the fruition environment leveraged by each user. 
For more information go to the home page of the Device Independence Activity at the W3C.

[2]   The Composite Capability/Preference Profiles (CC/PP) is a framework still being developed by the World Wide Web Consortium (W3C) that aims at defining an universal and extensible format for expressing the user terminals' delivery context by means of profiles. The CC/PP is based on the eXtensible Markup Language (XML) and the Resource Description Framework (RDF): the two lingua franca upon which will be founded the next generation of the Web, i.e., the Semantic Web.
For more information about the CC/PP go to the home page of the CC/PP Working Group  at the W3C.

[3]   The User Agent Profile (UAProf) is a standard from the Open Mobile Alliance (OMA, formerly the WAP Forum) that is parallel to the CC/PP and was born as an instance implementation of the CC/PP architecture and semantics.
For more information about UAProf consult the OMA site and the earlier WAP Forum Releases

Consider this site as a work in progress. I have not yet released SADiC: the engine running for the SADiC Online Validator is to be considered as a pre-alpha version. I will soon release SADiC as an open source project. Till that moment feel free to have me receive your comments and suggestions.  

The Author:                          

Francesco CannistrÓ


For information, comments or suggestions contact the Webmaster.
Copyright (c) 2003 Francesco CannistrÓ.
All rights reserved


SADiC Online Validator

The SADiC Semantic Approach