A CMD Core Model for CLARIN Web Services

Menzo Windhouwer
Menzo Windhouwersenior scientific software engineer at Data Archiving and Networked Services (DANS)
A CMD Core Model for CLARIN Web Services


     Menzo Windhouwer, Daan Broeder, Dieter van Uytvanck
 The Language Archive – Max Planck Institute for Psycholinguistics
                  Nijmegen, The Netherlands
CLARIN vision


Our vision is that the resources for processing
language, the data to be processed as well as appropriate
guidance, advice and training be made available and can
be accessed over a distributed network from the user's
desktop. CLARIN proposes to make this vision a reality:
the user will have access to guidance and advice through
distributed knowledge centres, and via a single sign-on
the user will have access to repositories of data with
standardized descriptions, processing tools ready to
operate on standardized data, and all of this will be
available on the internet using a service oriented
architecture based on secure grid technologies.

   http://www.clarin.eu/external/index.php?page=about-clarin&sub=0


22 May 2012                   LREC Metadata 2012 workshop        2
Outline



•   Web Service architectures
•   Component Metadata Infrastructure (CMDI)
•   National CLARIN initiatives
•   CMD core model for Web Services
•   Usage of the core model
•   Future work and conclusions




22 May 2012             LREC Metadata 2012 workshop   3
Service




              input
text=‘Welcome to Istanbul’        service                              output
                                    tokenize               tokens=[‘Welcome’, ‘to’, ‘Istanbul’]
   separator=whitespace




22 May 2012                  LREC Metadata 2012 workshop                                  4
Web Service




                                web server
                             http://www.example.com/
              input
text=‘Welcome to Istanbul’         service                              output
                                     tokenize               tokens=[‘Welcome’, ‘to’, ‘Istanbul’]
   separator=whitespace




        How to invoke a service and pass the parameters?
           Different Service Oriented Architectures.
22 May 2012                   LREC Metadata 2012 workshop                                5
SOA: RESTful Resource Orientation


                                           web server
                                       http://www.example.com/
                input
    text=‘Welcome to Istanbul’                 service                           output
                                                tokenize             tokens=[‘Welcome’, ‘to’, ‘Istanbul’]
      separator=whitespace


•    Resource oriented instead of service oriented
      • An URL tells what resource to operate on
      • Uses HTTP verbs (PUT, GET, POST, DELETE) to tell what to do
1. create a resource
             PUT http://www.example.com/text
             Content-type: plain/text

               Welcome to Istanbul
    response
             201
             Location: http://www.example.com/text/123
2. request tokens resource
                                                                                                  6
             GET http://www.example.com/text/123/tokens/whitespace
SOA: Remote Procedure Call


                                           web server
                                       http://www.example.com/
             input
    text=‘Welcome to Istanbul’                 service                               output
                                                tokenize               tokens=[‘Welcome’, ‘to’, ‘Istanbul’]
      separator=whitespace


•    The XML-RPC and SOAP are HTTP oriented RPC standards
      • An URL may function as an endpoint for several operations
      • Uses a standard envelope format to tell what to do
POST http://www.example.com/services
Content-type: text/xml

<methodCall>
            <methodName>tokenize</methodName>
            <params>
                      <param><value><string>Welcome to Istanbul</string></value></param>
                      <param><value><string>whitespace</string></value></param>
            </params>
                                                                                                    7
</methodCall>
SOA: REST-RPC hybrid


                                    web server
                                 http://www.example.com/
                  input
    text=‘Welcome to Istanbul’         service                              output
                                         tokenize               tokens=[‘Welcome’, ‘to’, ‘Istanbul’]
       separator=whitespace


•     Mixes REST and RPC
       • Can be more service than resource oriented
       • URL indicates what operation to perform on which data

GET http://www.example.com/tokenize?text=Welcome+to+Istanbul&separator=whitespace




    22 May 2012                   LREC Metadata 2012 workshop                                8
Interface Description Language


• RPC architectures tend to have an IDL which allows to
  describe which operations are available at the endpoint
      – SOAP: Web Service Description Language
              • WSDL (2)
• For REST and REST-RPC hybrids an IDL is controversial
      – Once you have the resource URL you can ‘just’ follow the links,
        e.g., like a web crawler does with HTML pages
      – However, REST(-RPC) allows too much freedom to allow a
        machine to infer how to retrieve a resource or invoke a service
              •   RFC 6570: URI Template
              •   WADL (old W3C submission by Sun)
              •   WSDL 2
              •   ...



22 May 2012                         LREC Metadata 2012 workshop       9
Profile matching



• To place Web Services in a chain or a workflow an
  user can be supported by profile matching
      – which service can operate on the input the user currently
        has available

• The IDL describes the technical needs to invoke a
  service, but profile matching needs more semantic
  information
      – it’s not useful to invoke the tokenizer on a project name,
        although it is a string of characters
      – next to a technical description also a semantic
        description is needed

22 May 2012                 LREC Metadata 2012 workshop          10
National CLARIN initiatives - Spain

•   IULA at UPF (continuation in PANACEA)
•   architecture: RPC (SOAP)
•   IDL: WSDL
•   semantic description:
      – SoapLab 2 and myGrid inspired
      – a CMD profile has been created


                          http://www.panacea-lr.eu/




22 May 2012                                           11
National CLARIN initiatives - Germany

•    WebLicht (D-SPIN continuation in CLARIN-D)
•    architecture: REST-RPC
•    IDL: none as there is a known pattern, i.e., POST TCF documents
•    semantic description:
      – WebLicht used a propriety service description
      – WebLicht 2.0 uses a core model compliant CMD profile


    http://clarin-d.net/index.php/en/language-resources/weblicht-en




22 May 2012                                                            12
National CLARIN initiatives – Netherlands and Flanders


•   TTNWW project
•   architecture: any
•   IDL: when available and supported by the framework (Taverne)
•   semantic description:
      – a CMD profile has been created
      – a core model compliant CMD profile has been created


                      http://www.clarin.nl/group/76#TTNWW




22 May 2012                                                            13
A CMD core model for CLARIN Web Services



• Several CMD profiles have been created by the
  national initiatives
      – large overlap due to common area:
              • service
              • input and output specifications
      – differences due to design choices:
              •   multiple operations per description
              •   separate technical description (IDL) or none at all
              •   handling of embedded parameters
              •   ...
• The CMD core model aims to align these
  profiles, but also allow extensions for
  accommodate differences in design choices

22 May 2012                         LREC Metadata 2012 workshop         14
Additional aims for the core model



• The core model should preferably provide
  enough information to
      – do (basic) profile matching
      – invoke a service


• This should allow (national) CLARIN web service
  chaining and workflow engines to potentially
  use all CLARIN web services



22 May 2012                 LREC Metadata 2012 workshop   15
UML model for Web Services




                             16
Salient points


• A (technical) service description is mandatory, but the model
  doesn’t prescribe an IDL
• The location/endpoint of the service is part of the technical
  description, i.e., only the PID/URL of the service description is
  part of the semantic description
• A description can cover multiple operations
• Parameters might be (deeply) embedded in a technical input
  document, e.g., the token or lemma layer inside a TCF
  document, this is covered by parameter groups
• Names of operations, parameters and/or groups in the semantic
  description should be resolvable in the technical description, so
  after profile matching it is known how parameters should
  technically be passed on during invocation
• Supports parameter (profile) matching on various semantic levels:
  MIME type, data type, data category, semantic type



22 May 2012                    LREC Metadata 2012 workshop            17
Parameter matching



• MIME type reveals the media type: text/plain
• Data type is generally an XML Schema data type: ID
• Data category is generally an ISOcat data category
  PID: /project id/ (DC-2535)
• Semantic type is generally a service specific type:
  clam.project.adelheid

• The tokenize server could specify text/plain as its
  input MIME type but still an Adelheid project name
  as the output of the Adelheid create project
  service would not be proper input

22 May 2012                LREC Metadata 2012 workshop   18
From UML to CMD



• Transformation to deal with inheritance:
      – each non-abstract class becomes a component
      – each atomic attribute becomes an element, but
      – each referential attribute becomes a component
        with the referred class as a child component, except
      – when this class is abstract all non-abstract
        subclasses become child components
      – copy cardinality constraints where possible

              http://catalog.clarin.eu/ds/ComponentRegistry?item=clarin.eu:cr1:p_1311927752335




22 May 2012                             LREC Metadata 2012 workshop                              19
Service
                                      •   Name: string
                                      •   Description: string?
                                      •   ServiceDescriptionLocation: resource


                                                       Operations
                                                              +
                                                       Operation
                                      •   Name: string
                                      •   Description: string?

                                                       ?
                                 Input                                                Output
                                *      *                                         *         *
                      ParameterGroup                                                   Parameter
         •    Name: string                                           •   Name: string
         •    Description: string?                                   •   Description: string?
         •    MIMEType: string?                                      •   MIMEType: string?
         •    DataType: string?                                      •   DataType: string?
         •    DataCategory: anyURI?                                  •   DataCategory: anyURI?
         •    SemanticType: string?                                  •   SemanticType: string?
                                                                     •   isConfigurationParameter: boolean?
                                                                                             ?
                         Parameters                                                      Values
                            +                                                               +
                                                                                     ParameterValue
                                                                     •   Value: string
                                                                     •   Description: string ?
22 May 2012                                                          •   DataCategory: anyURI?
Usage of the CMD core model


• The core model is only a starting point, i.e., provides enough
  information for basic profile matching and technical invocation
• It is a template to form a basis for the CMD profile of specific web
  service registries, i.e., the model can be extended
• However, instantiations should also maintain compliance to the
  core model
      – cardinalities should be within the boundaries of the core model, e.g.,
        mandatory elements cannot become optional
      – closed value domains cannot be extended, but open value domains can be
        turned into closed ones
      – data category references should not be changed as this would imply different
        semantics
• CLARIN-NL ToolService profile is a compliant extension:
              http://catalog.clarin.eu/ds/ComponentRegistry?item=clarin.eu:cr1:p_1311927752306

•   Validate compliance of instances to the core model:
                                http://www.isocat.org/clarin/ws/cmd-core/
22 May 2012                             LREC Metadata 2012 workshop                              21
Current status and future work


• Current state:
      – There are some compliant profiles:
              • CLARIN-NL ToolService profile
                   – but not in use by TTNWW yet
              • WebLicht 2.0 profile
                   – in use, but still missing technical description (WADL)
      – The core model is successful if there is a workflow/chaining
        engine invoking web services which were originally targeted at
        another engine or none at all

• Future work:
      – Complex chains of web services are captured in (mini) workflows
              • can this core model also describe the mini workflows?
      – Alignment with or reuse by other initiatives
              • e.g., META-SHARE meta model is also based on components and
                ISOcat, and contains a section on Tools and Services
      – Identify common extensions and incorporate them into the core
              • e.g., default values, cardinalities, asynchronicity
22 May 2012                             LREC Metadata 2012 workshop           22
Thanks for your attention!

                    Please visit:
     http://www.isocat.org/clarin/ws/cmd-core/




22 May 2012          LREC Metadata 2012 workshop   23
1 of 23

Recommended

Java part 3 by
Java part  3Java part  3
Java part 3ACCESS Health Digital
30 views34 slides
WebServices SOAP WSDL and UDDI by
WebServices SOAP WSDL and UDDIWebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDIRajkattamuri
2.7K views38 slides
Intro to web services by
Intro to web servicesIntro to web services
Intro to web servicesNeil Ghosh
4.5K views43 slides
UDDI in Mule Esb by
UDDI in Mule EsbUDDI in Mule Esb
UDDI in Mule EsbAnand kalla
663 views16 slides
Java Web Programming [1/9] : Introduction to Web Application by
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationIMC Institute
4.7K views53 slides
WebServices by
WebServicesWebServices
WebServicesRajkattamuri
331 views38 slides

More Related Content

What's hot

Cloud computing by Luqman by
Cloud computing by LuqmanCloud computing by Luqman
Cloud computing by LuqmanLuqman Shareef
1.7K views63 slides
Java Web Services by
Java Web ServicesJava Web Services
Java Web ServicesJussi Pohjolainen
1.7K views194 slides
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail) by
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2
7.9K views32 slides
Service Oriented Architecture Luqman by
Service Oriented Architecture LuqmanService Oriented Architecture Luqman
Service Oriented Architecture LuqmanLuqman Shareef
1.8K views57 slides
[Java Colombo Meetup] The better java for Java microservices developers by
[Java Colombo Meetup] The better java for Java microservices developers[Java Colombo Meetup] The better java for Java microservices developers
[Java Colombo Meetup] The better java for Java microservices developersBallerinalang
311 views36 slides
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2) by
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)Carles Farré
1.5K views16 slides

What's hot(20)

Cloud computing by Luqman by Luqman Shareef
Cloud computing by LuqmanCloud computing by Luqman
Cloud computing by Luqman
Luqman Shareef1.7K views
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail) by WSO2
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO27.9K views
Service Oriented Architecture Luqman by Luqman Shareef
Service Oriented Architecture LuqmanService Oriented Architecture Luqman
Service Oriented Architecture Luqman
Luqman Shareef1.8K views
[Java Colombo Meetup] The better java for Java microservices developers by Ballerinalang
[Java Colombo Meetup] The better java for Java microservices developers[Java Colombo Meetup] The better java for Java microservices developers
[Java Colombo Meetup] The better java for Java microservices developers
Ballerinalang311 views
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2) by Carles Farré
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
[DSBW Spring 2009] Unit 06: Conallen's Web Application Extension for UML (WAE2)
Carles Farré1.5K views
Integrating with SAP FIX and HL7 by WSO2
Integrating with SAP FIX and HL7Integrating with SAP FIX and HL7
Integrating with SAP FIX and HL7
WSO22.4K views
Web programming and development - Introduction by Joel Briza
Web programming and development - IntroductionWeb programming and development - Introduction
Web programming and development - Introduction
Joel Briza1.7K views
Session 37 - JSP - Part 2 (final) by PawanMM
Session 37 - JSP - Part 2 (final)Session 37 - JSP - Part 2 (final)
Session 37 - JSP - Part 2 (final)
PawanMM69 views
Spring Social - Messaging Friends & Influencing People by Gordon Dickens
Spring Social - Messaging Friends & Influencing PeopleSpring Social - Messaging Friends & Influencing People
Spring Social - Messaging Friends & Influencing People
Gordon Dickens6.8K views
USP presentation of CHOReOS @ FISL Conference by choreos
USP presentation of CHOReOS @ FISL ConferenceUSP presentation of CHOReOS @ FISL Conference
USP presentation of CHOReOS @ FISL Conference
choreos569 views
Webservices Workshop - september 2014 by clairvoyantllc
Webservices Workshop -  september 2014Webservices Workshop -  september 2014
Webservices Workshop - september 2014
clairvoyantllc298 views
Automating the Use of Web APIs through Lightweight Semantics by mmaleshkova
Automating the Use of Web APIs through Lightweight SemanticsAutomating the Use of Web APIs through Lightweight Semantics
Automating the Use of Web APIs through Lightweight Semantics
mmaleshkova1.4K views

Viewers also liked

The ISO-DCR by
The ISO-DCRThe ISO-DCR
The ISO-DCRMenzo Windhouwer
419 views12 slides
LDL 2012 - Linking to ISOcat Data Categories by
LDL 2012 - Linking to ISOcat Data CategoriesLDL 2012 - Linking to ISOcat Data Categories
LDL 2012 - Linking to ISOcat Data CategoriesMenzo Windhouwer
918 views23 slides
ISOcat to LMF to TEI by
ISOcat to LMF to TEIISOcat to LMF to TEI
ISOcat to LMF to TEIMenzo Windhouwer
1.1K views14 slides
Plains Indian Teepee by
Plains Indian TeepeePlains Indian Teepee
Plains Indian Teepeeguest59aa42b
1.6K views8 slides
Znani i popularni by
Znani i popularniZnani i popularni
Znani i popularniGazeta Pomorska
641 views36 slides
Use of ISOcat within CMDI by
Use of ISOcat within CMDIUse of ISOcat within CMDI
Use of ISOcat within CMDIMenzo Windhouwer
656 views16 slides

Viewers also liked(18)

LDL 2012 - Linking to ISOcat Data Categories by Menzo Windhouwer
LDL 2012 - Linking to ISOcat Data CategoriesLDL 2012 - Linking to ISOcat Data Categories
LDL 2012 - Linking to ISOcat Data Categories
Menzo Windhouwer918 views
Plains Indian Teepee by guest59aa42b
Plains Indian TeepeePlains Indian Teepee
Plains Indian Teepee
guest59aa42b1.6K views
Sustainable operability: Keeping complex linguistic resources alive. by Menzo Windhouwer
Sustainable operability: Keeping complex linguistic resources alive.Sustainable operability: Keeping complex linguistic resources alive.
Sustainable operability: Keeping complex linguistic resources alive.
Menzo Windhouwer577 views
On the way to a Relation Registry for ISOcat data categories by Menzo Windhouwer
On the way to a Relation Registry for ISOcat data categoriesOn the way to a Relation Registry for ISOcat data categories
On the way to a Relation Registry for ISOcat data categories
Menzo Windhouwer485 views
What do cats have to do with explicit semantics? by Menzo Windhouwer
What do cats have to do with explicit semantics?What do cats have to do with explicit semantics?
What do cats have to do with explicit semantics?
Menzo Windhouwer452 views
Vip10750行程报价单诺维奇出发3天2晚0802010 by guest55ae8d4
Vip10750行程报价单诺维奇出发3天2晚0802010Vip10750行程报价单诺维奇出发3天2晚0802010
Vip10750行程报价单诺维奇出发3天2晚0802010
guest55ae8d41K views
Collaboratively Defining Widely Accepted Linguistic Data Categories in the IS... by Menzo Windhouwer
Collaboratively Defining Widely Accepted Linguistic Data Categories in the IS...Collaboratively Defining Widely Accepted Linguistic Data Categories in the IS...
Collaboratively Defining Widely Accepted Linguistic Data Categories in the IS...
Menzo Windhouwer736 views

Similar to A CMD Core Model for CLARIN Web Services

SOA for PL/SQL Developer (OPP 2010) by
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)Lucas Jellema
3.3K views80 slides
RESTFul Tools For Lazy Experts - CFSummit 2016 by
RESTFul Tools For Lazy Experts - CFSummit 2016RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016Ortus Solutions, Corp
5.5K views38 slides
Rest ful tools for lazy experts by
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy expertsColdFusionConference
362 views38 slides
complete web service1.ppt by
complete web service1.pptcomplete web service1.ppt
complete web service1.pptDr.Saranya K.G
5 views61 slides
OUGN 2016: Experiences with REST support on OSB/SOA Suite by
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteJon Petter Hjulstad
2.6K views34 slides
Ws 05-basic webservicestechnology by
Ws 05-basic webservicestechnologyWs 05-basic webservicestechnology
Ws 05-basic webservicestechnologySTI Innsbruck
86 views60 slides

Similar to A CMD Core Model for CLARIN Web Services(20)

SOA for PL/SQL Developer (OPP 2010) by Lucas Jellema
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)
Lucas Jellema3.3K views
OUGN 2016: Experiences with REST support on OSB/SOA Suite by Jon Petter Hjulstad
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA Suite
Jon Petter Hjulstad2.6K views
Ws 05-basic webservicestechnology by STI Innsbruck
Ws 05-basic webservicestechnologyWs 05-basic webservicestechnology
Ws 05-basic webservicestechnology
STI Innsbruck86 views
Expose your data as an api is with oracle rest data services -spoug Madrid by Vinay Kumar
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug Madrid
Vinay Kumar1.7K views
REST API Recommendations by Jeelani Shaik
REST API RecommendationsREST API Recommendations
REST API Recommendations
Jeelani Shaik330 views
Soa limitations by wmarcia2011
Soa limitationsSoa limitations
Soa limitations
wmarcia20111.4K views
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors by BIOVIA
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
BIOVIA829 views
ASP.NET Mvc 4 web api by Tiago Knoch
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
Tiago Knoch9.3K views
Angular - Chapter 7 - HTTP Services by WebStackAcademy
Angular - Chapter 7 - HTTP ServicesAngular - Chapter 7 - HTTP Services
Angular - Chapter 7 - HTTP Services
WebStackAcademy649 views
Soap and restful webservice by Dong Ngoc
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
Dong Ngoc2K views
Innovate2011 Keys to Building OSLC Integrations by Steve Speicher
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
Steve Speicher1.5K views

A CMD Core Model for CLARIN Web Services

  • 1. A CMD Core Model for CLARIN Web Services Menzo Windhouwer, Daan Broeder, Dieter van Uytvanck The Language Archive – Max Planck Institute for Psycholinguistics Nijmegen, The Netherlands
  • 2. CLARIN vision Our vision is that the resources for processing language, the data to be processed as well as appropriate guidance, advice and training be made available and can be accessed over a distributed network from the user's desktop. CLARIN proposes to make this vision a reality: the user will have access to guidance and advice through distributed knowledge centres, and via a single sign-on the user will have access to repositories of data with standardized descriptions, processing tools ready to operate on standardized data, and all of this will be available on the internet using a service oriented architecture based on secure grid technologies. http://www.clarin.eu/external/index.php?page=about-clarin&sub=0 22 May 2012 LREC Metadata 2012 workshop 2
  • 3. Outline • Web Service architectures • Component Metadata Infrastructure (CMDI) • National CLARIN initiatives • CMD core model for Web Services • Usage of the core model • Future work and conclusions 22 May 2012 LREC Metadata 2012 workshop 3
  • 4. Service input text=‘Welcome to Istanbul’ service output tokenize tokens=[‘Welcome’, ‘to’, ‘Istanbul’] separator=whitespace 22 May 2012 LREC Metadata 2012 workshop 4
  • 5. Web Service web server http://www.example.com/ input text=‘Welcome to Istanbul’ service output tokenize tokens=[‘Welcome’, ‘to’, ‘Istanbul’] separator=whitespace How to invoke a service and pass the parameters? Different Service Oriented Architectures. 22 May 2012 LREC Metadata 2012 workshop 5
  • 6. SOA: RESTful Resource Orientation web server http://www.example.com/ input text=‘Welcome to Istanbul’ service output tokenize tokens=[‘Welcome’, ‘to’, ‘Istanbul’] separator=whitespace • Resource oriented instead of service oriented • An URL tells what resource to operate on • Uses HTTP verbs (PUT, GET, POST, DELETE) to tell what to do 1. create a resource PUT http://www.example.com/text Content-type: plain/text Welcome to Istanbul response 201 Location: http://www.example.com/text/123 2. request tokens resource 6 GET http://www.example.com/text/123/tokens/whitespace
  • 7. SOA: Remote Procedure Call web server http://www.example.com/ input text=‘Welcome to Istanbul’ service output tokenize tokens=[‘Welcome’, ‘to’, ‘Istanbul’] separator=whitespace • The XML-RPC and SOAP are HTTP oriented RPC standards • An URL may function as an endpoint for several operations • Uses a standard envelope format to tell what to do POST http://www.example.com/services Content-type: text/xml <methodCall> <methodName>tokenize</methodName> <params> <param><value><string>Welcome to Istanbul</string></value></param> <param><value><string>whitespace</string></value></param> </params> 7 </methodCall>
  • 8. SOA: REST-RPC hybrid web server http://www.example.com/ input text=‘Welcome to Istanbul’ service output tokenize tokens=[‘Welcome’, ‘to’, ‘Istanbul’] separator=whitespace • Mixes REST and RPC • Can be more service than resource oriented • URL indicates what operation to perform on which data GET http://www.example.com/tokenize?text=Welcome+to+Istanbul&separator=whitespace 22 May 2012 LREC Metadata 2012 workshop 8
  • 9. Interface Description Language • RPC architectures tend to have an IDL which allows to describe which operations are available at the endpoint – SOAP: Web Service Description Language • WSDL (2) • For REST and REST-RPC hybrids an IDL is controversial – Once you have the resource URL you can ‘just’ follow the links, e.g., like a web crawler does with HTML pages – However, REST(-RPC) allows too much freedom to allow a machine to infer how to retrieve a resource or invoke a service • RFC 6570: URI Template • WADL (old W3C submission by Sun) • WSDL 2 • ... 22 May 2012 LREC Metadata 2012 workshop 9
  • 10. Profile matching • To place Web Services in a chain or a workflow an user can be supported by profile matching – which service can operate on the input the user currently has available • The IDL describes the technical needs to invoke a service, but profile matching needs more semantic information – it’s not useful to invoke the tokenizer on a project name, although it is a string of characters – next to a technical description also a semantic description is needed 22 May 2012 LREC Metadata 2012 workshop 10
  • 11. National CLARIN initiatives - Spain • IULA at UPF (continuation in PANACEA) • architecture: RPC (SOAP) • IDL: WSDL • semantic description: – SoapLab 2 and myGrid inspired – a CMD profile has been created http://www.panacea-lr.eu/ 22 May 2012 11
  • 12. National CLARIN initiatives - Germany • WebLicht (D-SPIN continuation in CLARIN-D) • architecture: REST-RPC • IDL: none as there is a known pattern, i.e., POST TCF documents • semantic description: – WebLicht used a propriety service description – WebLicht 2.0 uses a core model compliant CMD profile http://clarin-d.net/index.php/en/language-resources/weblicht-en 22 May 2012 12
  • 13. National CLARIN initiatives – Netherlands and Flanders • TTNWW project • architecture: any • IDL: when available and supported by the framework (Taverne) • semantic description: – a CMD profile has been created – a core model compliant CMD profile has been created http://www.clarin.nl/group/76#TTNWW 22 May 2012 13
  • 14. A CMD core model for CLARIN Web Services • Several CMD profiles have been created by the national initiatives – large overlap due to common area: • service • input and output specifications – differences due to design choices: • multiple operations per description • separate technical description (IDL) or none at all • handling of embedded parameters • ... • The CMD core model aims to align these profiles, but also allow extensions for accommodate differences in design choices 22 May 2012 LREC Metadata 2012 workshop 14
  • 15. Additional aims for the core model • The core model should preferably provide enough information to – do (basic) profile matching – invoke a service • This should allow (national) CLARIN web service chaining and workflow engines to potentially use all CLARIN web services 22 May 2012 LREC Metadata 2012 workshop 15
  • 16. UML model for Web Services 16
  • 17. Salient points • A (technical) service description is mandatory, but the model doesn’t prescribe an IDL • The location/endpoint of the service is part of the technical description, i.e., only the PID/URL of the service description is part of the semantic description • A description can cover multiple operations • Parameters might be (deeply) embedded in a technical input document, e.g., the token or lemma layer inside a TCF document, this is covered by parameter groups • Names of operations, parameters and/or groups in the semantic description should be resolvable in the technical description, so after profile matching it is known how parameters should technically be passed on during invocation • Supports parameter (profile) matching on various semantic levels: MIME type, data type, data category, semantic type 22 May 2012 LREC Metadata 2012 workshop 17
  • 18. Parameter matching • MIME type reveals the media type: text/plain • Data type is generally an XML Schema data type: ID • Data category is generally an ISOcat data category PID: /project id/ (DC-2535) • Semantic type is generally a service specific type: clam.project.adelheid • The tokenize server could specify text/plain as its input MIME type but still an Adelheid project name as the output of the Adelheid create project service would not be proper input 22 May 2012 LREC Metadata 2012 workshop 18
  • 19. From UML to CMD • Transformation to deal with inheritance: – each non-abstract class becomes a component – each atomic attribute becomes an element, but – each referential attribute becomes a component with the referred class as a child component, except – when this class is abstract all non-abstract subclasses become child components – copy cardinality constraints where possible http://catalog.clarin.eu/ds/ComponentRegistry?item=clarin.eu:cr1:p_1311927752335 22 May 2012 LREC Metadata 2012 workshop 19
  • 20. Service • Name: string • Description: string? • ServiceDescriptionLocation: resource Operations + Operation • Name: string • Description: string? ? Input Output * * * * ParameterGroup Parameter • Name: string • Name: string • Description: string? • Description: string? • MIMEType: string? • MIMEType: string? • DataType: string? • DataType: string? • DataCategory: anyURI? • DataCategory: anyURI? • SemanticType: string? • SemanticType: string? • isConfigurationParameter: boolean? ? Parameters Values + + ParameterValue • Value: string • Description: string ? 22 May 2012 • DataCategory: anyURI?
  • 21. Usage of the CMD core model • The core model is only a starting point, i.e., provides enough information for basic profile matching and technical invocation • It is a template to form a basis for the CMD profile of specific web service registries, i.e., the model can be extended • However, instantiations should also maintain compliance to the core model – cardinalities should be within the boundaries of the core model, e.g., mandatory elements cannot become optional – closed value domains cannot be extended, but open value domains can be turned into closed ones – data category references should not be changed as this would imply different semantics • CLARIN-NL ToolService profile is a compliant extension: http://catalog.clarin.eu/ds/ComponentRegistry?item=clarin.eu:cr1:p_1311927752306 • Validate compliance of instances to the core model: http://www.isocat.org/clarin/ws/cmd-core/ 22 May 2012 LREC Metadata 2012 workshop 21
  • 22. Current status and future work • Current state: – There are some compliant profiles: • CLARIN-NL ToolService profile – but not in use by TTNWW yet • WebLicht 2.0 profile – in use, but still missing technical description (WADL) – The core model is successful if there is a workflow/chaining engine invoking web services which were originally targeted at another engine or none at all • Future work: – Complex chains of web services are captured in (mini) workflows • can this core model also describe the mini workflows? – Alignment with or reuse by other initiatives • e.g., META-SHARE meta model is also based on components and ISOcat, and contains a section on Tools and Services – Identify common extensions and incorporate them into the core • e.g., default values, cardinalities, asynchronicity 22 May 2012 LREC Metadata 2012 workshop 22
  • 23. Thanks for your attention! Please visit: http://www.isocat.org/clarin/ws/cmd-core/ 22 May 2012 LREC Metadata 2012 workshop 23