TheSemanticBlog

The Semantic Web, Semantic Web Services and more…

Archive for the ‘Semantic Web’ Category

QoS based Web service discovery

Posted by Aditya Thatte on September 12, 2009

With the increasing importance of Quality of Service (QoS) in computer science and IT, the need to have well performing services has become essential, because of their distributed nature. The performance characteristics of such Web services becomes the key in deciding which one to use (bind to) at runtime. Here we consider both, enterprises services as well as the ones exposed over the web. Performance ( response time ) is one of the most critical parameters in determining the QoS of any software component to to maintain Service Level Agreements (SLA) between the consumers and providers, especially in mission critical service composition scenarios.. Most software components do not come with any specification in terms of QoS ( eg. response time, CPU utilization, availability etc ), because of which it is hard to determine the performance of such components. These QoS characteristics and or specifications form an essential part in systems which invoke and compose software services ( components ) dynamically on the fly.
Many research groups have and still are contributing to the notion of QoS based Web service discovery, which attempts to discover services based not only on IOPEs but QoS specifications as well. Using semantics we are able to describe QoS parameters within Web service descriptions, which then will be useful in dynamic discovery and invocation based on those parameters. So if a requestor wishes to bind to a service with a response time under 20 ms, the semantic matchmaker can apply matchmaking that fits the corresponding criteria of the requestor. Essentially, this QoS information can form a part of the ontology for Web services ( OWL-S / WSMO ) and the matchmaker can refer to these ontologies during discovery and enable subsequent invocation of the service. This approach can prove to be indispensible in enabling mission critical performant systems. However one thing to be kept in mind is, the QoS specifications will be only local to that provider since the service operates within those limits based on that particular target environment and will change accordingly as the service is hosted into a new operating environment.

Advertisements

Posted in Semantic Web, Web services | Tagged: , | Leave a Comment »

Semantic Data Storage in Oracle

Posted by Aditya Thatte on January 16, 2009

Oracle 10g Release 2/ 11g offers a robust, scalable, secure platform to store RDF, OWL data. It allows efficient storage, loading and querying of semantic data. Queries are enhanced by adding relationships ( ontologies ) to data and evaluated on the basis of semantics. Data storage is in the form of RDF triples (Subject Predicate Object) and can scale upto million triples. The triples stored in the semantic data store are modelled as a graphed structure. All the data is stored in a single central schema allowing access to users for loading and querying data.

The Subject and object are modelled as nodes, while the predicates are denoted by links in the graphed structure. Nodes are stored and efficiently reused when required. An RDF triple in the semantic store has a subject ( start node ), predicate (relationship), object ( end node ), which comprises a link. A new link is created on inserting a new triple and nodes are reused if similar nodes already exists.

New object types are defined to manage Semantic Data viz. SDO_RDF_TRIPLE and SDO_RDF_TRIPLE_S. The former stores the references to the data and the latter holds the actual data content. The nodes ( Subject, Object ) are stored in the RDF_NODE$ table, which can be further broken down into START_NODE_ID and END_NODE_ID. The RDF_LINKS$ table stores the record for the link whenever a new triple is inserted. Blank nodes may also be inserted as a part of any triple, which are stored in the RDF_BLANK_NODE$. An RDF model stores references to all the RDF data in the database and can be created by executing the sem_apis.create_sem_model procedure.

To get started with semantic data management on Windows XP, click “https://thesemanticway.wordpress.com/2009/01/04/configuring-semantic-web-technology-support-in-oracle-11g-release-1-on-windows-xp” to configure semantic web technology support in Oracle.

This article gives an overview of semantic data storage,however to get additional in-depth information on Semantic Data support in Oracle, here are some useful links:

http://download.oracle.com/docs/cd/B19306_01/appdev.102/b19307/sdo_rdf_concepts.htm

http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28397/sdo_rdf_concepts.htm

References : RDF support in Oracle (http://www.oracle.com/technology/tech/semantic_technologies/pdf/semantic_tech_rdf_wp.pdf)

Posted in OWL, RDF, Semantic Web | Tagged: , | 1 Comment »

Configuring Semantic Web Technology Support in Oracle 11g Release 1 on Windows XP

Posted by Aditya Thatte on January 4, 2009

The Oracle 11g platform offers a scalable, secure, robust platform for semantic web data management. Oracle 11g supports efficient
management of  RDF, OWL by executing simple queries. Data can be stored in the form of  RDF triples and queried easily. Here are a series
of steps to set up Semantic web support in Oracle 11g.

1. Install Oracle 11g and download the “JENADRV” patch from “http://www.oracle.com/technology/software/tech/semantic_technologies/files/jenadrv_patch111rdf.zip“.

2. Extract the JENADRV folder to some directory.
3. Goto Directory Your_Drive_Name:/>Oracle_Home/product/11.0.1.0/md/admin
4. Open SQLPLUS and connect as SYS user.
5. Type the following command at the SQL prompt

– SQL>@Your_Drive_Name:\>Oracle_Home\product\11.0.1.0\md\admin\catsem10i.sql;
1

This command restores Oracle 10 RDF data.

6. Now issue the following command at the SQL prompt

– SQL>@Your_Drive_Name:\>Oracle_Home\product\11.0.1.0\md\admin\catsem11i.sql;

This command installs 11 RDF, confirm with the snapshot given below to check if procedure has been executed successfully.

2

7. Now, alter the “mdsys” user by the following command

-SQL>ALTER USER mdsys ACCOUNT UNLOCKED IDENTIFIED BY mdsys;

3

8. Connect as user “mdsys” as show below
4

9. Now, apply the JENADRV patch to enable Semantic web Data support. Execute the following commands in the same sequence shown below

– SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdordfh.sql;

5

–  SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdordfxh.sql;

6

– SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdordfa.sql;

7

-SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdordfb.plb;

8

–  SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdordfxb.plb;

9

– SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdoseminfhb.plb;

10

– SQL>@Your_Drive_Name:\>Extracted_Jenadrv_folder\sdordfai.plb;

11

10. Connect sys as sysdba

12

11 . Create a new “rdf” tablespace by issuing the following command

CREATE TABLESPACE <<TABLESPACE_NAME>> DATAFILE ‘Your_Drive_Name:\>Oracle_Home\oradata\<SID>\<<TABLESPACE_NAME>>01.dbf’ SIZE 128M REUSE AUTOEXTEND ON NEXT 64M MAXSIZE UNLIMITED SEGMENT SPACE MANAGEMENT AUTO;

13

12. Similarly create a temporary tablespace

CREATE TEMPORARY TABLESPACE <<TEMP_TABLESPACE_NAME>> TEMPFILE ‘Your_Drive_Name:\>Oracle_Home\oradata\<SID>\<<TEMP_TABLESPACE_NAME>>01.dbf’ SIZE 128M REUSE AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED

14

13. Now, create a new “testuser” and grant required privileges as shown in     the snapshot

15

14. Create a semantic network to enable semantic data management

16

15. Create table

17

16. Create a semantic model to enable a semantic data environment

18

Once this is done, you have enabled the semantic web technology support in Oracle 11g Release 1. Happy Semantic Data management !!

Posted in OWL, Semantic Web | Tagged: | 8 Comments »

Installing OWL-S IDE Eclipse Plugin

Posted by Aditya Thatte on December 15, 2008

There are a series of simple steps that you need to follow to install the OWL-S IDE Eclipse Plugin. The installation tasks are depicted
by snapshots shown below.

1. Goto http://projects.semwebcentral.org/frs/?group_id=37&release_id=192
2. Download “Code-Lib-Feature-1.1.zip” and “OWL-SEditor-1.1.zip”.
3. Create a folder on your local computer “OWL-S IDE”, copy and extract the downloaded files in the folder.
4. Start Eclipse
5. Click on “Help —-> Software Updates —-> Find and Install”

6. Select “Search for new features to install” and click “Next”.

7. Click “New local site”

8. Browse to the “Code-library feature” directory and select it.

9.  Select ok.

10. Select the checkbox next to the Code-lib feature and click Finish.

11. Select check box and click Next.

12. Accept agreement and click Next.

13. Click finish

14. Click Yes to restart eclipse.

15.  Follow the same procedure for “OWL-S Editor feature folder ” .

16.  Click Finish

17. Click yes to restart eclispe.

18.  Select “Help —-> Software Updates —-> Manage Configuration” to verify that the plugin has been installed properly.

19. Check if the contents in the ellipse appear.

17

20. Help —-> Help Contents.

21. Check if the contents in the ellipse appear.

Now, you will be able to create OWL-S descriptions in the OWL-S IDE.

Posted in OWL, Semantic Web | 5 Comments »

Service Ontologies

Posted by Aditya Thatte on December 10, 2008

Ontologies classifying and describing services are called service ontologies. The existing WSDL interface describes a service by specifying operation name, inputs required, output of the service and its target address for invocation. Human intervention is required in this loop since the current architecture only addresses the syntactical aspects of Web services and lacks choreography mechanisms.

Service ontologies supplements the WSDL interface, adding knowledge required to enable automatic discovery, invocation and composition of web services. The idea is to annotate web services, enabling the automation of the web service life cycle.

The existing conceptual models for describing services are OWL-S, WSMO, WSDL-S, SWSF, SAWSDL.

For example, the OWL-S service ontology is classified into three categories : profile, model, grounding as shown in the diagram. The service component is actually an instance of the service and is linked to the profile, model, grounding by different properties. The profile is an advertisement of what the service does i.e what the service offers in terms of functionality. It considers input, output, preconditions, effects ( IOPE ).

The input specifies the actual input required for invoking the web service, output specifies the actual output the client gets or expects. Preconditions indicates the conditions that need to be satisfied for the successful execution of the web service. The effect describes the state of the web service after its execution.

The service model describes how the service works in order to achieve its functionality. It describes atomic processes, composite processes and the message choreography involved in invoking the web service. Atomic processes are the ones, that undergo straight forward execution requiring standard input, whereas composite processes are the ones which involve combination of different services.

Service grounding illustrates as to how the service can be accessed.It describes the network protocols, data exchange formats, required to invoke the web service.

Like OWL-S, the other models also address the semantic nature of web service descriptions thereby making an effort to automate the web service life cycle.

Posted in Semantic Web | Tagged: , | Leave a Comment »

Motivation : Semantic Web Services

Posted by Aditya Thatte on December 3, 2008

The aim of the Semantic Web is to enable machines or software systems understand information (resources) on the web and apply reasoning techniques on it to achieve specific goals.Applying Semantic web technologies to the Web services architecture introduces the concept of “Semantic Web Services”.

 

The current Web services architecture follows the Publish, find, bind paradigm involving human (manual) intervention to a certain extent.Web services are ofcourse exposed via an interface and published in a registry. The client looks up the registry and binds to the relevant service provider and invokes the service by exchanging some messages. The following slide shows the current Web service life cycle.
Semantic Web Services (SWS), aims at enabling automatic
discovery, invocation, composition and mediation of web services, all of which are otherwise done manually as of today. Semantic Web applications can be created by using “services” from the web services architecture. At the heart of the semantic technology reside ontologies and agents who are responsible for representing knowledge and perform reasoning on that knowledge respectively.
The idea of using SWS is to automate the entire web service life cycle.

Semantic Web Services Scenario

A booking agency wants to book airplane tickets for a customer to find the best deal : A software agent acting on the behalf of the agency is provided with the details of the journey like source , destination , first class seats ,price( discount offered) etc. The software agent looksup the registry of available service providers and selects one on based on the details mentioned above.The agent visits different providers to check airfare details, using negotiation algorithms to select the best deal (service provider).Based on the best deal offered, the ticket will be booked automatically.However, the issue of trust will play a vital role in the design of such an application.
Certain assumptions that the application will have the credit card number of the customer are made, which ofcourse depends on the design of the application.
The complexity of the application will depend on the granularity of the services.Semantic Web applications are developed using composite services. The key to effective discovery, invocation and composition of services includes critical discovery mechanisms, negotiation algorithms, composition techniques.Such services are identified by service ontologies. Service ontologies equips itself with knowledge which supplements the WSDL interface. These ontologies advertise the service, describe its behavior and protocols used to access the service. Currently there are 2 standards of specifying ontology services, viz. OWL-S, WSMO.

In case of OWL-S, agents require the OWL-S specification of the service as well as the client query in the form of an OWL-S template , specifying parameters like input,output, pre-conditions and effects ( IOPE ) to enable automation of the web service life cycle.

Semantic web applications deals with complexities, at the same time making applications “smarter”, reducing human intervention. Ideal scenarios of using Semantic web services would be in the areas of B2B and B2C transactions.

Posted in Semantic Web | Tagged: | Leave a Comment »

RDF Schema (RDFS) Example

Posted by Aditya Thatte on November 16, 2008

RDF is a mechanism to describe information on the web.RDF Schema ( RDFS ) adds vocabulary to express information in the form of classes and subclasses and the relationship between them. RDF also defines properties associated with classes.

A relationship between two things / entities can be represented by a class. A list of all RDF classes and properties can be found at http://www.w3.org/TR/rdf-schema/.

Let us consider an example of RDF and RDFS layers.

Statement : Aditya Thatte stays in Pune

The schema for this statement will contain the following classes and propertiesrdf_rdfs

For the statement ” Aditya Thatte stays in Pune ” , the RDF triple is ( Aditya Thatte , stays in , Pune)

This  can be mapped to a schema which contains the classes ” Citizen ” and ” Country”. A Citizen “abc”

stays in a country ” X” , then “X’ also involves “abc”.

The class citizen has subclasses “Voting citizen ” and ” non voting citizen” and the country class has subclasses ” states ” which inturn has subclasses ” city ” , “town” , ” taluka” represented by the “subclassof ” property.

The rectangle represents properties, ellipses in the RDFS layer represents classes while ellipses in the RDF layer represents instances. The domain and range enforce constraints on the subject and objects of a property.

So, the above diagram suggests that the subject ( Aditya Thatte ) is a “type” of voting citizen , object (Pune) is a “type” of a city and the relationship between them is ” stays in” or “resides in” .

Thus, RDFS expresses vocabulary in the form of classes and properties.

References : Thinking on the web – H.Peter Alesso, Craig F. Smith

Posted in Semantic Web | Tagged: , | Leave a Comment »

RDF : An Introduction

Posted by Aditya Thatte on November 16, 2008

HTML is used for formatting data and representing it in the form of a web page. XML is used to describe and exchange data over different software systems. XML defines and uses metadata , since it has the ability to use ” user defined” tags.  The “user defined” tags add meaning to data , however it is only understood by humans.

For example,

<car>
  <model> Honda Civic coupe TS1 </model>
</car>

Human can understand this as ” The model of the car is Honda Civic Coupe TS1″.

Resource Description Framework extends the XML model by adding semantics (meaning), to enable machine capable ( machine interpretable ) processing. It is based on triples, also called N-3 notation ( Subject , predicate , object ).

Subject : A data resource ( person , thing ) that a statement describes . Identified by a URI.

Predicate : The property of the subject ( resource ) being described. It can be name , title , color , weight etc , and is also identified by a URI.

Object : The value of the property ( Aditya Thatte , Yamaha etc ).

A simple statement can be represented as triples in the following manner,

Statement : Aditya Thatte works in TIBCO.

The triple can be expressed as ( Aditya Thatte , works in , TIBCO ).

Subject : Aditya Thatte

Predicate : works in

Object : TIBCO

semanticnet

The above figure shows the graphical representation of the RDF statement. Such a graphical representation is referred to as a “Semantic net ” . For more information on RDF visit “http://www.w3.org/RDF/&#8221;.

Posted in Semantic Web | Tagged: , | Leave a Comment »

OWL : Ontology example

Posted by Aditya Thatte on November 11, 2008

Ontologies describe the relationships between entities on a conceptual level. It shows the hierarchy of classes and subclasses for an object-entity , for eg ( computer ).It decribes subclass relationships , disjointness , constraints , information between objects. It provides vital information to search agents , intelligent agents , databases.
Agents use ontologies and perform powerful reasoning to represent knowledge. Ontologies are modelled using Web Ontology Language ( OWL ). OWL has different flavors varying inexpressiveness of web content.

OWL Full – Highly expressive , but no computational guarantee
OWL DL – Less expressive than OWL-Full , but efficient reasoning provided
OWL Lite – Least expressive , high reasoning support

Lets have a look at an example

geography_ontology

Above figure illustrates an ontology for a country , show subclass relationships , the “parent” class being “country” . The classes lower in the hierarchy represent the “subclassof ” relationship.

Posted in OWL, Semantic Web | Tagged: , | Leave a Comment »

The Semantic Web : An Introduction

Posted by Aditya Thatte on November 11, 2008

The Semantic Web is an initiative aimed to build an intelligent architecture for the web. Today’s web is identified by markup languages like HTML  , XML , which is  ofcourse syntax based and understood by browsers. The browser agent understands the syntax and renders the page accordingly , but does not understand the meaning of the elements and its relationships with other elements used in the document.

For example , the statement ” Aditya Thatte works in TIBCO Software ” is interpreted by the current infrastructure as a pure HTML paragraph , <p> Aditya Thatte works in TIBCO Software</p>

The above sentence can be understood by humans but not by computers.The Semantic Web enables computers to understand data that describes data ( metadata ).
 The aim is to create web content machine-interpretable , so that software agents can access data ( resources ) from disparate sources and link data. The idea is to use existing knowledge to create new knowledge.

In contrast to the above interpretation ,  the semantic web can enable computers understand the above statement as ” Aditya Thatte “works” in TIBCO Software ” i.e the relationship between Aditya Thatte and TIBCO Software , which apparently is “works ” or in other words ” is an employee of ” .

All the above said and done , the Semantic web uses AI , logic , powerful reasoning mechanisms ,inference engines, and markup languages like Resource Description Framework (RDF) , Web Ontology Language (OWL) to create an intelligent architecture.

RDF is a standard which describes resources ( information ) on the web. OWL aims at representing related concepts using ontologies. The semantic web has various applications like semantic search , semantic Web services ( SWS ) , bioinformatics etc.
Here we shall look at how we can use the power of semantic web technologies and apply it to web services to automate the processes of discovery , invocation , composition and mediation.

Posted in Semantic Web | Tagged: , , | 1 Comment »