SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Building Distributed
                             Semantic Systems



                               Antonio Garrote Hernández



Monday, December 21, 2009
Definition

                   • Distributed processes
                   • Semantic meta data exposed as resources
                   • Triple space operations
                   • RESTful interface

Monday, December 21, 2009
Different abstraction
                                levels


Monday, December 21, 2009
Monday, December 21, 2009
Sample application



Monday, December 21, 2009
Exception logging
                                   system
                   •        Sensor processes monitoring generation of
                            exceptions in different nodes and languages/platforms

                   •        Aggregator processes retrieving the exceptions and
                            creating Exception resources

                   •        Exception RESTful semantic web service

                   •        Web client displaying generated exceptions




Monday, December 21, 2009
Methodology



Monday, December 21, 2009
4 step process

                   1. Knowledge modeling
                   2. Formal description
                   3. Implementation of RESTful semantic
                      services
                   4. Implementation of client processes



Monday, December 21, 2009
1.Knowledge modeling



Monday, December 21, 2009
1.Knowledge modeling
                   •        Building of an ontology for the problem domain

                   •        Ontology = TBox in Description Logics

                   •        Use of W3C’s standard languages: RDFS or OWL

                   •        Assistance of graphical tools like Protégé




Monday, December 21, 2009
Sample application ontology

                                                        level     message   createdAt




                                                                Exception



                                        generated
                                                                                           platform




                                        Node                                       Language

                            ipAddress          domain                           dc:title        formatPattern


Monday, December 21, 2009
Developing the sample application ontology with Protégé




Monday, December 21, 2009
Ontology(<http://semantic_rest/exceptions.owl>

                                  Declaration(Class(Exception))
                                  SubClassOf(Exception owl:Thing)
                                  Declaration(Class(Node))
                                  SubClassOf(Node owl:Thing)
                                  Declaration(Class(ProgrammingLanguage))
                                  SubClassOf(ProgrammingLanguage owl:Thing)

                                  Declaration(ObjectProperty(platform))
                                  ObjectPropertyDomain(platform Exception)
                                  ObjectPropertyRange(platform ProgrammingLanguage)

                                  Declaration(ObjectProperty(generatedIn))
                                  ObjectPropertyDomain(generatedIn Exception)
                                  ObjectPropertyRange(generatedIn Node)


             Resulting ontology   Declaration(DataProperty(level))
                                  DataPropertyDomain(level Exception)


                using OWL
                                  DataPropertyRange(level rdfs:Literal)

                                  Declaration(DataProperty(ipAddress))


            Functional Notation
                                  DataPropertyDomain(ipAddress Node)
                                  DataPropertyRange(ipAddress xsd:string)

                                  Declaration(DataProperty(formatPattern))
                                  DataPropertyDomain(formatPattern Exception)
                                  DataPropertyRange(formatPattern xsd:string)

                                  Declaration(DataProperty(createdAt))
                                  DataPropertyDomain(createdAt Exception)
                                  DataPropertyRange(createdAt xsd:dateTime)

                                  Declaration(DataProperty(content))
                                  DataPropertyDomain(content Exception)
                                  DataPropertyRange(content xsd:string)

                                  Declaration(DataProperty(domain))
                                  DataPropertyDomain(domain Node)
                                  DataPropertyRange(domain rdfs:Literal)
                                  )




Monday, December 21, 2009
2.Formal description



Monday, December 21, 2009
• Formal description of the whole distributed
                            system

                   • Concerned with ‘dynamic’ aspects of the
                            system

                   • Use of an extended version of the Pi-
                            Calculus




Monday, December 21, 2009
Formal description of the sample application




                                                                    S(r)

                            GET subscribe n       POST n

           W                                  E            A   TE


                                                                    S(j)

Monday, December 21, 2009
Formal description of the sample application



                            Processes equations:




Monday, December 21, 2009
3.Implementation of
                             RESTful semantic
                                  services


Monday, December 21, 2009
• 1 RESTful semantic service per OWL/RDFS
                            class in the ontology

                   • Use of the Plaza Framework developed for
                            building RESTful semantic web services




Monday, December 21, 2009
RESTful Semantic Web
                          Service

                   • OWL/RDFS class triples
                   • Exposed as a RESTful resource
                   • Conceptually equivalent to a Linda triple
                            space




Monday, December 21, 2009
Service’s Interface
                               Create                 POST

                                Read                  GET

                            Blocking read    GET + xblocking header

                             Subscribe      • GET + xsubscribe header
                                            • Websockets
                              Update                  PUT

                              Destroy                DELETE

Monday, December 21, 2009
RDF
      Lifting                        Graph

                                          SPARQL query

                            REST Resource

                                             triple
                              resource
                                             space

                               triple space op.


                               HTTP request              Lowering
Monday, December 21, 2009
Plaza Framework




Monday, December 21, 2009
Plaza Framework
                   •        Manages ‘Plaza Applications’: OWL ontolgy +
                            configuration module + resources modules

                   •        Declarative: almost no coding required

                   •        Support for different Java RDF repositories

                   •        Automatic managing of triples through the concepts of
                            write-tree and read-tree for the resources

                   •        Support for the subscribe operation through chunked
                            HTTP responses and websockets

Monday, December 21, 2009
Sample application configuration module




Monday, December 21, 2009
Sample application exceptions resource module




Monday, December 21, 2009
4.Implementation of
                               client processes


Monday, December 21, 2009
• Client processes are just REST clients
                   • Required libraries: HTTP and triples format
                            parser (RDF/XML, Turtle, JSON)

                   • Optional support for Websockets
                   • Clojure library included as part of the Plaza
                            Framework



Monday, December 21, 2009
Clojure implementation of the sensor and aggregator
                            processes




Monday, December 21, 2009
Javascript web client using websockets




Monday, December 21, 2009
Web client execution




Monday, December 21, 2009
Conclusions
                   •        Semantic technologies enable rich description of
                            problem domains vs. relational modeling

                   •        Formal description of distributed systems enables
                            reasoning about its validity and correctness

                   •        RESTful semantic web services enable easy access
                            to semantic data

                   •        Building RESTful semantic web services clients is
                            trivial due to the use of well known HTTP
                            standard

                   •        Triple Space operations are powerful coordination
                            mechanisms for distributed processes

Monday, December 21, 2009

Contenu connexe

Similaire à Developing Distributed Semantic Systems

The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repositorynobby
 
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...cwensel
 
Iron* - An Introduction to Getting Dynamic on .NET
Iron* - An Introduction to Getting Dynamic on .NETIron* - An Introduction to Getting Dynamic on .NET
Iron* - An Introduction to Getting Dynamic on .NETKristian Kristensen
 
Best Practices in Ext GWT
Best Practices in Ext GWTBest Practices in Ext GWT
Best Practices in Ext GWTSencha
 
Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4John Ballinger
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Robert Lemke
 
Hands on with Ruby & MongoDB
Hands on with Ruby & MongoDBHands on with Ruby & MongoDB
Hands on with Ruby & MongoDBWynn Netherland
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Languagezefhemel
 
Mozilla in Vietnam 2009
Mozilla in Vietnam 2009Mozilla in Vietnam 2009
Mozilla in Vietnam 2009Gen Kanai
 
Extending Spring for Custom Usage
Extending Spring for Custom UsageExtending Spring for Custom Usage
Extending Spring for Custom UsageJoshua Long
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012Anil Madhavapeddy
 
MongoDB Use Cases and Roadmap
MongoDB Use Cases and RoadmapMongoDB Use Cases and Roadmap
MongoDB Use Cases and RoadmapMongoDB
 
Building A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage SolutionBuilding A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage SolutionPhil Cryer
 
Large-Scale Data Storage and Processing for Scientists with Hadoop
Large-Scale Data Storage and Processing for Scientists with HadoopLarge-Scale Data Storage and Processing for Scientists with Hadoop
Large-Scale Data Storage and Processing for Scientists with HadoopEvert Lammerts
 
Summer Training In Dotnet
Summer Training In DotnetSummer Training In Dotnet
Summer Training In DotnetDUCC Systems
 
Summer training in dotnet
Summer training in dotnetSummer training in dotnet
Summer training in dotnetDUCC Systems
 
PHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success StoryPHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success StoryMichael Spector
 
Realizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache BeamRealizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache BeamDataWorks Summit
 

Similaire à Developing Distributed Semantic Systems (20)

The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
SAM SIG: Hadoop architecture, MapReduce patterns, and best practices with Cas...
 
Everyday - mongodb
Everyday - mongodbEveryday - mongodb
Everyday - mongodb
 
Iron* - An Introduction to Getting Dynamic on .NET
Iron* - An Introduction to Getting Dynamic on .NETIron* - An Introduction to Getting Dynamic on .NET
Iron* - An Introduction to Getting Dynamic on .NET
 
Best Practices in Ext GWT
Best Practices in Ext GWTBest Practices in Ext GWT
Best Practices in Ext GWT
 
Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4Bar Camp Auckland - Mongo DB Presentation BCA4
Bar Camp Auckland - Mongo DB Presentation BCA4
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)
 
Hands on with Ruby & MongoDB
Hands on with Ruby & MongoDBHands on with Ruby & MongoDB
Hands on with Ruby & MongoDB
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Language
 
Mozilla in Vietnam 2009
Mozilla in Vietnam 2009Mozilla in Vietnam 2009
Mozilla in Vietnam 2009
 
Extending Spring for Custom Usage
Extending Spring for Custom UsageExtending Spring for Custom Usage
Extending Spring for Custom Usage
 
OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012OCaml Labs introduction at OCaml Consortium 2012
OCaml Labs introduction at OCaml Consortium 2012
 
MongoDB Use Cases and Roadmap
MongoDB Use Cases and RoadmapMongoDB Use Cases and Roadmap
MongoDB Use Cases and Roadmap
 
Building A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage SolutionBuilding A Scalable Open Source Storage Solution
Building A Scalable Open Source Storage Solution
 
Nosql
NosqlNosql
Nosql
 
Large-Scale Data Storage and Processing for Scientists with Hadoop
Large-Scale Data Storage and Processing for Scientists with HadoopLarge-Scale Data Storage and Processing for Scientists with Hadoop
Large-Scale Data Storage and Processing for Scientists with Hadoop
 
Summer Training In Dotnet
Summer Training In DotnetSummer Training In Dotnet
Summer Training In Dotnet
 
Summer training in dotnet
Summer training in dotnetSummer training in dotnet
Summer training in dotnet
 
PHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success StoryPHP Development Tools 2.0 - Success Story
PHP Development Tools 2.0 - Success Story
 
Realizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache BeamRealizing the Promise of Portable Data Processing with Apache Beam
Realizing the Promise of Portable Data Processing with Apache Beam
 

Plus de Antonio Garrote Hernández

API Modeling Framework: a toolbox ofr API specs. Gluecon 2017
API Modeling Framework: a toolbox ofr API specs. Gluecon 2017API Modeling Framework: a toolbox ofr API specs. Gluecon 2017
API Modeling Framework: a toolbox ofr API specs. Gluecon 2017Antonio Garrote Hernández
 
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...Antonio Garrote Hernández
 
RESTful writable APIs for the web of Linked Data using relational storage sol...
RESTful writable APIs for the web of Linked Data using relational storage sol...RESTful writable APIs for the web of Linked Data using relational storage sol...
RESTful writable APIs for the web of Linked Data using relational storage sol...Antonio Garrote Hernández
 

Plus de Antonio Garrote Hernández (6)

API Modeling Framework: a toolbox ofr API specs. Gluecon 2017
API Modeling Framework: a toolbox ofr API specs. Gluecon 2017API Modeling Framework: a toolbox ofr API specs. Gluecon 2017
API Modeling Framework: a toolbox ofr API specs. Gluecon 2017
 
Linked Data APIs (Funding Circle May 2015)
Linked Data APIs (Funding Circle May 2015)Linked Data APIs (Funding Circle May 2015)
Linked Data APIs (Funding Circle May 2015)
 
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
 
RESTful writable APIs for the web of Linked Data using relational storage sol...
RESTful writable APIs for the web of Linked Data using relational storage sol...RESTful writable APIs for the web of Linked Data using relational storage sol...
RESTful writable APIs for the web of Linked Data using relational storage sol...
 
lisp (vs ruby) metaprogramming
lisp (vs ruby) metaprogramminglisp (vs ruby) metaprogramming
lisp (vs ruby) metaprogramming
 
Egearmand: an Erlang Gearman daemon
Egearmand: an Erlang Gearman daemonEgearmand: an Erlang Gearman daemon
Egearmand: an Erlang Gearman daemon
 

Dernier

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 

Dernier (20)

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 

Developing Distributed Semantic Systems

  • 1. Building Distributed Semantic Systems Antonio Garrote Hernández Monday, December 21, 2009
  • 2. Definition • Distributed processes • Semantic meta data exposed as resources • Triple space operations • RESTful interface Monday, December 21, 2009
  • 3. Different abstraction levels Monday, December 21, 2009
  • 6. Exception logging system • Sensor processes monitoring generation of exceptions in different nodes and languages/platforms • Aggregator processes retrieving the exceptions and creating Exception resources • Exception RESTful semantic web service • Web client displaying generated exceptions Monday, December 21, 2009
  • 8. 4 step process 1. Knowledge modeling 2. Formal description 3. Implementation of RESTful semantic services 4. Implementation of client processes Monday, December 21, 2009
  • 10. 1.Knowledge modeling • Building of an ontology for the problem domain • Ontology = TBox in Description Logics • Use of W3C’s standard languages: RDFS or OWL • Assistance of graphical tools like Protégé Monday, December 21, 2009
  • 11. Sample application ontology level message createdAt Exception generated platform Node Language ipAddress domain dc:title formatPattern Monday, December 21, 2009
  • 12. Developing the sample application ontology with Protégé Monday, December 21, 2009
  • 13. Ontology(<http://semantic_rest/exceptions.owl> Declaration(Class(Exception)) SubClassOf(Exception owl:Thing) Declaration(Class(Node)) SubClassOf(Node owl:Thing) Declaration(Class(ProgrammingLanguage)) SubClassOf(ProgrammingLanguage owl:Thing) Declaration(ObjectProperty(platform)) ObjectPropertyDomain(platform Exception) ObjectPropertyRange(platform ProgrammingLanguage) Declaration(ObjectProperty(generatedIn)) ObjectPropertyDomain(generatedIn Exception) ObjectPropertyRange(generatedIn Node) Resulting ontology Declaration(DataProperty(level)) DataPropertyDomain(level Exception) using OWL DataPropertyRange(level rdfs:Literal) Declaration(DataProperty(ipAddress)) Functional Notation DataPropertyDomain(ipAddress Node) DataPropertyRange(ipAddress xsd:string) Declaration(DataProperty(formatPattern)) DataPropertyDomain(formatPattern Exception) DataPropertyRange(formatPattern xsd:string) Declaration(DataProperty(createdAt)) DataPropertyDomain(createdAt Exception) DataPropertyRange(createdAt xsd:dateTime) Declaration(DataProperty(content)) DataPropertyDomain(content Exception) DataPropertyRange(content xsd:string) Declaration(DataProperty(domain)) DataPropertyDomain(domain Node) DataPropertyRange(domain rdfs:Literal) ) Monday, December 21, 2009
  • 15. • Formal description of the whole distributed system • Concerned with ‘dynamic’ aspects of the system • Use of an extended version of the Pi- Calculus Monday, December 21, 2009
  • 16. Formal description of the sample application S(r) GET subscribe n POST n W E A TE S(j) Monday, December 21, 2009
  • 17. Formal description of the sample application Processes equations: Monday, December 21, 2009
  • 18. 3.Implementation of RESTful semantic services Monday, December 21, 2009
  • 19. • 1 RESTful semantic service per OWL/RDFS class in the ontology • Use of the Plaza Framework developed for building RESTful semantic web services Monday, December 21, 2009
  • 20. RESTful Semantic Web Service • OWL/RDFS class triples • Exposed as a RESTful resource • Conceptually equivalent to a Linda triple space Monday, December 21, 2009
  • 21. Service’s Interface Create POST Read GET Blocking read GET + xblocking header Subscribe • GET + xsubscribe header • Websockets Update PUT Destroy DELETE Monday, December 21, 2009
  • 22. RDF Lifting Graph SPARQL query REST Resource triple resource space triple space op. HTTP request Lowering Monday, December 21, 2009
  • 24. Plaza Framework • Manages ‘Plaza Applications’: OWL ontolgy + configuration module + resources modules • Declarative: almost no coding required • Support for different Java RDF repositories • Automatic managing of triples through the concepts of write-tree and read-tree for the resources • Support for the subscribe operation through chunked HTTP responses and websockets Monday, December 21, 2009
  • 25. Sample application configuration module Monday, December 21, 2009
  • 26. Sample application exceptions resource module Monday, December 21, 2009
  • 27. 4.Implementation of client processes Monday, December 21, 2009
  • 28. • Client processes are just REST clients • Required libraries: HTTP and triples format parser (RDF/XML, Turtle, JSON) • Optional support for Websockets • Clojure library included as part of the Plaza Framework Monday, December 21, 2009
  • 29. Clojure implementation of the sensor and aggregator processes Monday, December 21, 2009
  • 30. Javascript web client using websockets Monday, December 21, 2009
  • 31. Web client execution Monday, December 21, 2009
  • 32. Conclusions • Semantic technologies enable rich description of problem domains vs. relational modeling • Formal description of distributed systems enables reasoning about its validity and correctness • RESTful semantic web services enable easy access to semantic data • Building RESTful semantic web services clients is trivial due to the use of well known HTTP standard • Triple Space operations are powerful coordination mechanisms for distributed processes Monday, December 21, 2009