WS-DAIOnt-RDF(S): A framework of ontology access services for RDF(S) ontologies www.ontogrid.net Miguel Esteban Gutiérrez mesteban@fi.upm.es Asunción Gómez-Pérez asun@fi.upm.es Óscar Muñoz García omunoz@fi.upm.es Boris Villazón Terrazas bvillazon@fi.upm.es Ontology Engineering Group, UPM RDF, Ontologies and Meta-Data Workshop Edinburgh, June 7th - 9th 2006 Table of Contents Introduction WS-DAIOnt WS-DAIOnt-RDF(S) Workplan RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 2 Diversity of Ontology tools and languages 1. No uniform access to ontologies implemented in W3C languages • RDF(S) • OWL Accessing RDF(S) ontologies •Sesame Statements(classUri, rdfs:type, rdfs:class) next() getObject() •Jena getResource(classURI) 2. 3. Each language has several query languages and inference engines • RDF(S): SPARQL, SeRQL, RQL, RDQL and SILRI, RIL, Triple • OLW: OWL-QL and FACT, Racer Each ontology tool and storage system has its own API for accessing ontologies RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 3 OGSA ‘Semantic’ limitations No Grid compliant ontology access mechanisms in RDF(S) and OWL No specialized registry for localizing ontologies No Grid compliant instance access mechanisms in RDF SemGrid Applications access ontologies as on the Semantic Web 3store Kowaki Node B Node A RDF(S) RDF(S) Ontology evaluator File Edit Evaluation Parameters Ontology1.rdf Ontology1.owl <service> <name>robes</name> <atribute> <atrname>product</atrname> <value>dressingGown</value> </atribute> <atribute> <atrname>washing_instruction</atrname> <value>machineWash</value> <value>handWash</value> <value>dryClean</value> </atribute> </service> WebODE Jena Evaluating ontology... Node D Sesame Node C OWL OWL RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 4 Adding ontologies to OGSA: OGSA-ONT Grid compliant ontology access and querying mechanisms for: RDF(S) OWL Specialized registry for localizing ontologies Ontology evaluator File Edit Evaluation Parameters Ontology1.rdf Ontology1.owl <service> <name>robes</name> <atribute> <atrname>product</atrname> <value>dressingGown</value> </atribute> <atribute> <atrname>washing_instruction</atrname> <value>machineWash</value> <value>handWash</value> <value>dryClean</value> </atribute> </service> WebODE Evaluating ontology... Node D Sesame OWL 3store Node A OGSA-ONT Jena Node C RDF(S) OWL Kowaki Node B RDF(S) RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 5 OntoGrid, Ontologies and S-OGSA Architect, adapt and extend existing ontology services to be Grid compliant Access and querying heterogeneus and Isa distributed ontology sources as a homogeneous logical resources Provide homogeneous service interfaces Modular design to ease Middleware layer extensibility Application layer Insurance settlement Satellite quality analysis RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 6 What is WS-DAIOnt? Web Services Data Access and Integration – The Ontology Realization Specification of Grid Compliant Ontology Services, which Defines a framework for creating ontology access services in a Grid environment Is fully compliant with S-OGSA (consequently with OGSA) Is based on up-to-date Grid standards (GGF) • WS-DAI Is based on Web Service standards (OASIS, W3C) • WS-RF, WS-Addressing... First implementation focused on RDF(S): WS-DAIOnt-RDF(S) Sesame and Jena (Oracle RDF-store, Atlas) Query languages: SPARQL, SeRQL, RDQL, RQL RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 7 Two sample implementations: Architectural implications Business logic Sample Application Ontology Access Client Layer ProtocolSesame Protocols Implementations Tools Business logic Sample Application Ontology Access Client Layer ProtocolJena ProtocolSesame ProtocolJena ImplSesame ImplJena Sesame Jena RDF(S) Repository RDF(S) Repository • Monolithic approach: • Client side: splitted ontology access logic • Server side: Two protocols + two implementations ProtocolRDF(S) Protocols Implementations Tools ProtocolRDF(S) ImplRDF(S)-Sesame ImplRDF(S)-Jena Sesame Jena RDF(S) Repository RDF(S) Repository • Dual tier approach: • Client side: single access logic • Server side: One protocol + two implementations RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 8 WS-DAIOnt-RDF(S): RDF(S) Ontology Access in Grids Our purpose: To provide a rational access mechanism for RDF(S) (ontologies) in Grid environments Activities to carry out: Workout a spec defining the interfaces, operations, messages, etc. that are to be provided Develop a system that follows the spec … but we don’t start from the scratch: OGSA WS-DAI Globus Toolkit 4 Different RDF(S) storages (Sesame, Jena, …) RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 9 WS-DAIOnt-RDF(S) Implementation Architecture Two-tier architecture • Upper service layer Upper service layer RDFSRepository Service Intermadiate service layer Web Service Tier Web Service tier RDFSRepository SelectorService • Intermediate service layer • Lower service layer RDFSConnector Storage layer • RDFSConnector Sesame • Storage layer RDF(S) Access Tier RDF(S) access tier Lower service layer RDFSClass Service RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 10 Implementation and Specification Web Service Tier RDFSRepositorySelector Service RDFSRepository SelectorService RDFSRepositorySelectorDescription Upper service layer RDFSRepositorySelectorAccess RDFSRepositorySelectorFactory RDFSRepository Service Intermadiate service layer RDFSRepository Service RDFSRepositoryDescription Lower service layer RDFSClass Service RDFSRepositoryAccess RDF(S) Access Tier RDFSRepositoryFactory RDFSConnector RDFSClass Service Storage layer Sesame RDFSClassDescription RDFSClassAccess RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 11 RDFSRepositorySelectorService RDFSRepositorySelector Service RDFSRepositorySelectorDescription RDFSRepositorySelectorAccess RDFSRepositorySelectorFactory RDFSRepository Service RDFSRepositoryDescription RDFSRepositoryAccess RDFSRepositoryFactory RDFSClass Service RDFSClassDescription RDFSClassAccess RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 12 RDFSRepositorySelectorService: sample message getRepositoryFactory message Returns an EPR for a given repository <xsd:element name="getRepositoryFactory"> <xsd:complexType> <xsd:sequence> <xsd:element name = "id" minOccurs="1" maxOccurs="1" ref="tns:repositoryId"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getRepositoryFactoryResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name = "epr" minOccurs="1" maxOccurs="1" ref="wsa:EndpointReference"/> </xsd:sequence> </xsd:complexType> </xsd:element> RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 13 RDFSRepositoryService RDFSRepositorySelector Service RDFSRepositorySelectorDescription RDFSRepositorySelectorAccess RDFSRepositorySelectorFactory RDFSRepository Service RDFSRepositoryDescription RDFSRepositoryAccess RDFSRepositoryFactory RDFSClass Service RDFSClassDescription RDFSClassAccess RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 14 RDFSRepositoryService: sample messages (I) getClassFactory message Returns the EPR for a given class <xsd:element name="getClassFactory"> <xsd:complexType> <xsd:sequence> <xsd:element name="classUri" maxOccurs="1" minOccurs="1" ref="tns:Uri"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="getClassFactoryResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="epr" ref="wsa:EndpointReference"/> </xsd:sequence> </xsd:complexType> </xsd:element> RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 15 RDFSRepositoryService: sample messages (II) query message Performs a SELECT or CONSTRUCT query to the repository in a given QL and returns the result as a table of string values <xsd:element name="query"> <xsd:complexType> <xsd:sequence> <xsd:element name="queryString" maxOccurs="1" minOccurs="1" ref="tns:Query"/> <xsd:element name="queryLanguage" maxOccurs="1" minOccurs="1" ref="tns:Language"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="queryResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="resourceSet" minOccurs="0" maxOccurs="unbounded" ref="tns:Row"/>/> </xsd:sequence> </xsd:complexType> </xsd:element> RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 16 RDFSClassService RDFSRepositorySelector Service RDFSRepositorySelectorDescription RDFSRepositorySelectorAccess RDFSRepositorySelectorFactory RDFSRepository Service RDFSRepositoryDescription RDFSRepositoryAccess RDFSRepositoryFactory RDFSClass Service RDFSClassDescription RDFSClassAccess RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 17 RDFSClassService: sample messages (I) getSubclasses message Returns all the subclasses of the class <xsd:element name="getSubClasses"> <xsd:complexType/> </xsd:element> <xsd:element name="getSubClassesResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="classes" minOccurs="0" maxOccurs="unbounded" ref="tns:Uri"/> </xsd:sequence> </xsd:complexType> </xsd:element> RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 18 RDFSClassService: sample messages (II) getSuperClasses message Returns all the superclasses of the class <xsd:element name="getSuperClasses"> <xsd:complexType/> </xsd:element> <xsd:element name="getSuperClassesResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="classes" minOccurs="0" maxOccurs="unbounded" ref="tns:Uri"/> </xsd:sequence> </xsd:complexType> </xsd:element> RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 19 Configuring the system… RDFSRepository.rdfs Structure RDFSNamespace has RDFSRepository uri SC More RDF(S) Repositories here to be added RDFSSesameRepository SC RDFSSesameFileRepository SC For example: • Jena RDF(S) storage • Oracle-RDF • RDF distributed systems (ATLAS) SC RDFSSesameMemoryRepository file RDFSSesameRemoteRepository user password SC SC RDFSSesameHTTPRepository RDFSSesameRMIRepository url rmiuri RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 20 Sample configuration RDFSRepository.rdf example <?xml version="1.0" encoding="WINDOWS-1252"?> <rdf:RDF xmlns:rdfs_repos="http://wsdaiordfs.eu.ist.ontogrid/RDFSRepository#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdf:Description rdf:about="http://wsdaiordfs.eu.ist.ontogrid/RDFSRepository#civil_file"> <rdfs:comment>A testing file</rdfs:comment> <rdfs:label>civil_file</rdfs:label> <rdfs_repos:has rdf:resource="http://wsdaiordfs.eu.ist.ontogrid/RDFSRepository#civil"/> <rdfs_repos:file>/etc/ws-daio-rdfs/Civil_Personality.rdfs</rdfs_repos:file> <rdf:type rdf:resource="http://wsdaiordfs.eu.ist.ontogrid/ RDFSRepository#RDFSSesameFileRepository"/> </rdf:Description> <rdf:Description rdf:about="http://wsdaiordfs.eu.ist.ontogrid/RDFSRepository#civil"> <rdfs:comment>An example namespace.</rdfs:comment> <rdfs:label>civil</rdfs:label> <rdfs_repos:uri>http://webode.dia.fi.upm.es/RDFS/Civil_Personality#</rdfs_repos:uri> <rdf:type rdf:resource="http://wsdaiordfs.eu.ist.ontogrid/RDFSRepository#RDFSNamespace"/> </rdf:Description> </rdf:RDF> RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 21 Where we are moving to… WS-DAIOnt-RDF(S) Specification Repository SelectorAccess Repository SelectorService Repository SelectorFactory RepositoryService Medium interface tier Repository Access Resource Service Repository AccessFactory Class Service Container Service Class Access Property Access Statement Access Container Access Lower interface tier Alt Access Alt Service RDFSConnector List Access Container Factory List Service Statement Service Sesame Connector Jena Connector Oracle Connector Sesame RDF Storage Jena RDF Storage Oracle RDF Storage Container IteratorAccess ... RDF(S) Storage Implementation Layer Resource Access Property Service Web Service Implementation Layer Upper interface tier WS-DAIOnt-RDF(S) Implementation RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 22 Access to WS-DAIOnt-RDF(S) implementation Publications WS-DAIOnt: Ontology Access Provisioning in Grid Environments. Esteban Gutiérrez M, Gómez-Pérez A, Bechhofer S. Knowledge and Data Management in Grids (Springer CoreGRID Series). In press. Source code http://www.ontogrid.net/, For Downloading Distributions Access to CVS Connection type: pserver user: ontogrid password: not needed Host: rpc262.cs.man.ac.uk Port: 2401 Repository path: /local/ontogrid/cvsroot module: prototype/ws-daio-rdfs RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 23 Ongoing development workplan in OntoGrid First spec for WS-DAIOnt Ontogrid deliverable d3.1 WS-DAIOnt-RDF(S) implementation access to RDF(S) ontologies… … stored in Sesame (download it !!) … stored in Jena (July 2006) Update the Spec at the end of (Sept 2006) WS-DAIOnt-OWL spec & first implementation (Sept 2007) RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 24 GGF activities BoF discussion in GGF16 and GGF17 Chartering the RDF(S) access initiative as part of the DAIS WG • Joint collaboration OntoGrid (UPM) + AIST DAIS RDF F2F Breakout session on friday RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 25 Use WS-DAIOnt-RDF(S)! available at: www.ontogrid.net Feedback to: mesteban@fi.upm.es omunoz@fi.upm.es Acknowledgements to the OntoGrid consortium RDF, Ontologies and Meta-Data Workshop, Edinburgh, June 7th-9th 2006 26