Home / serviceprovTravelPlanner Example
Name Modified Size InfoDownloads / Week
Parent folder
READme.txt 2017-04-02 5.1 kB
serviceprovTravelPlanner.owl 2013-11-15 47.9 kB
Totals: 2 Items   53.0 kB 0
///////////////////////////////////////////////////////////////////////////////////////
/////author:Paraskevi Zerva////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
// The serviceProvTravelPlanner.owl file is an instantiated serviceProv file example // 
// for a composite service Travel Planner scenario.                                  //
//                                                                                   //
// The instances of this file were created in Protege Desktop 3.5, and queried       // 
// through the incorporated SPARQL query engine.                                     //
///////////////////////////////////////////////////////////////////////////////////////


Instructions to load ServiceProv in Protege 3.5.
------------------------------------------------

1) Download the ontology http://sourceforge.net/projects/serviceprov/files/serviceprovTravelPlanner.owl/
2) Open with Protege.exe
3) The ontology file is now loaded.

Instructions to run queries over travel planner instances in SPARQL query engine of Protege 3.5.
------------------------------------------------------------------------------------------------
1) Run Protege.exe
2) Click SPARQL query in the menu bar
3) Copy the following prefixes in the sparql query editor
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p1: <http://www.w3.org/ns/prov#>
PREFIX serviceprov2: <https://sourceforge.net/projects/serviceprov/files/serviceprov#>
4) Write your SPARQL query or copy one of the following examples
5) Click execute to show the results
------------------------------------------------------------------------------------------------

//////////////////////////////////////////////////////////////////
Query Example 1: Querying Service Provider's Identity Provenance//
//////////////////////////////////////////////////////////////////
SELECT ?serviceName ?provider ?ip ?port 
WHERE { ?provider serviceprov2:hadPort ?port.  
?provider serviceprov2:hadIPaddress ?ip.
?association p1:agent ?provider. 
?servInterfacePublishing a serviceprov2:ServiceInterfacePublishing.
?servInterfacePublishing p1:qualifiedAssociation ?association. 
?association p1:hadRole ?role.
?role a serviceprov2:ServiceProvider. 
?servdescriptionPublishedItem p1:wasGeneratedBy  ?servInterfacePublishing. 
?servdescriptionDiscoveredItem p1:wasDerivedFrom ?servdescriptionPublishedItem. 
?servdescription p1:hadMember ?servdescriptionDiscoveredItem. 
?service serviceprov2:hadDescription  ?servdescription.
?service serviceprov2:serviceName ?serviceName.
FILTER ( regex (str(?serviceName), "flight", "i"))
?servCollection p1:hadMember ?servdescription.  
?servCollection p1:wasGeneratedBy ?discovery. 
?discovery p1:used ?servRequest.  
?servRequest p1:wasGeneratedBy ?planning.
?workplan p1:wasGeneratedBy ?planning.   
?orchestratorExecution p1:used  ?workplan.  
?orchestratorExecution p1:value ?orchestratorExecutionID.
FILTER ( regex (str(?orchestratorExecutionID), "travelPlannerNWX1UX", "i"))
}



///////////////////////////////////////////////////
Query Example 2: Querying Data Flow's Provenance//
//////////////////////////////////////////////////


SELECT  ?serviceName ?parameterout  ?outputValue
WHERE {?parameterout p1:value  ?outputValue.
?outMessage p1:hadMember ?parameterout. 
?outMessage p1:wasGeneratedBy ?servexecution.
?servexecution serviceprov2:executionOf ?service. 
?service serviceprov2:serviceName ?serviceName. 
FILTER ( regex (str(?serviceName), "easyJet flight", "i") ) 
?servexecution p1:used ?inMessage.   
?inMessage p1:wasGeneratedBy ?orchestratorExecution. 
?orchestratorExecution p1:value ?orchestratorExecutionID.
FILTER ( regex(str(?orchestratorExecutionID), "travelPlannerNWX1UX",   "i")) }



////////////////////////////////////////////////////////////
Query Example 3: Querying NFP's Provenance (Availability)//
//////////////////////////////////////////////////////////

SELECT  ?availability ?value 
WHERE {?availability serviceprov2:NFPvalue  ?value.
?service serviceprov2:hadNFP ?availability.
?service p1:generatedAtTime ?ststart.
?service p1:invalidatedAtTime ?stend. 
?servexecution serviceprov2:executionOf  ?service. 
?service serviceprov2:serviceName ?serviceName.
FILTER ( regex (str(?serviceName), "easyJet flight", "i"))
?execution p1:used ?inMessage.
?inMessage p1:wasGeneratedBy ?orchestratorExecution.
?orchestratorExecution p1:value ?orchestratorExecutionID.
FILTER ( regex(str(?orchestratorExecutionID), "travelPlannerNWX1UX",   "i"))
?orchestratorExecution p1:startedAtTime ?otstart.
?orchestratorExecution p1:endedAtTime ?otend.
FILTER (?ststart <= ?otend)
FILTER  (?stend  >= ?otstart)}

-------------------------------------------------------------------------------------------
Source: READme.txt, updated 2017-04-02