SlideShare a Scribd company logo
A Semantic Description Language for
RESTful Web Services
    to Combat Semaphobia




        Markus Lanthaler
        Graz University of Technology
Web services are increasingly popular
Why do we                                        Why do we
need a website?                                   need an API?



    1995          2000                                    2005                         2010


               Of course we                                                         Of course we
              have a website                                                        have an API


                    Adapted from T. Vitvar’s and J. Musser’s ECOWS 2010 Keynote,
                    “ProgrammableWeb.com: Statistics, Trends, and Best Practices”
Lightweight semantic annotations
     start to gain acceptance
Increasing interest in the relationship of
   RESTful services and Linked Data
Need a machine-readable
                       service description
© Clever Cupcakes
© Nesster




             All previous efforts assume
            RPC-style. REST is different.
Semaphobia!?
simplicity


         son
Metadata                                             Element description

                                                                         Model
   Prefixes                        Links                      Type        ref.
                                                                                    Semantics   Properties   Items


                                          Media type &
Prefix Name     URI       Target         SEREDASj desc.
                                                                      Predicate    Object(s)    Name


                            Request
              Semantics
                          SEREDASj d.
                                        Variables         Semantics



                                         Model
Predicate     Object(s)          Name               Binding       Predicate       Object(s)
                                          ref.
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




{
    "meta": {
      "prefixes": {
        "foaf": "http://xmlns.com/foaf/0.1/",
        "ex":   "http://example.com/onto#",
        ...
      },
    },
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




    "type": "object",
    "model": "[foaf:Person]",
    "properties": {
      "id": {
        "type": "number", "model": "[ex:id]" },
      "first_name": {
        "type": "string", "model": "[foaf:firstName]" },
      "last_name": {
        "type": "string", "model": "[foaf:surname]" },
      ...
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




    "type": "object",
    "model": "[foaf:Person]",
    "properties": {
      "id": {
        "type": "number", "model": "[ex:id]" },
      "first_name": {
        "type": "string", "model": "[foaf:firstName]" },
      "last_name": {
        "type": "string", "model": "[foaf:surname]" },
      ...
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




    "type": "object",
    "model": "[foaf:Person]",
    "properties": {
      "id": {
        "type": "number", "model": "[ex:id]" },
      "first_name": {
        "type": "string", "model": "[foaf:firstName]" },
      "last_name": {
        "type": "string", "model": "[foaf:surname]" },
      ...
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




    "type": "object",
    "model": "[foaf:Person]",
    "properties": {
      "id": {
        "type": "number", "model": "[ex:id]" },
      "first_name": {
        "type": "string", "model": "[foaf:firstName]" },
      "last_name": {
        "type": "string", "model": "[foaf:surname]" },
      ...
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




      "links": {
        "/user/search{?query}": {
           "mediaType": "application/json",
           "seredasjDescription": "personlist.json",
           "semantics": {
             "[iana:relation]": "[iana:search]" },
           "variables": {
             "query": { "model": "[foaf:name]" }
           }
        },
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




          "/user/{id}": {
            "mediaType": "application/json",
            "seredasjDescription": "#",
            "variables": {
              "id": {
                 "binding": "#properties/knows/id"
            } },
            "requestDescription": "#"
          }
      }
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}
A person. (object)
id           number
first_name   string    The first name of a person.
last_name    string    The surname of some person.
gender       string    The gender of this Agent (typically but
                       not necessarily 'male' or 'female').
knows        array     A person known by this person
                       (indicating some level of reciprocated
                       interaction between the parties).

                     A person. (object)
     id      number
     name    string    A name for some thing.
strong emphasis on simplicity         many use
                                       cases

                                son




                      discovery and composition
Thank You



© 2011, Markus Lanthaler. Some Rights Reserved.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Questions?




Markus Lanthaler
Markus.Lanthaler@student.TUGraz.at
Image Credits
(3)  Adapted from T. Vitvar’s and J. Musser’s ECOWS 2010 Keynote,
     “ProgrammableWeb.com: Statistics, Trends, and Best Practices”
 (7) http://en.wikipedia.org/wiki/The_Scream
 (9) http://www.flickr.com/photos/clevercupcakes/4397152402/
(10) http://www.flickr.com/photos/nesster/3168425434/
Bonus Slides
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




      "knows": {
        "type": "array",
        "model": "[foaf:knows]",
        "items": {
          "type": "object", "model": "[foaf:Person]",
          "properties": {
            "id": {
              "type": "number", "model": "[ex:id]" },
            ...
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




      "knows": {
        "type": "array",
        "model": "[foaf:knows]",
        "items": {
          "type": "object", "model": "[foaf:Person]",
          "properties": {
            "id": {
              "type": "number", "model": "[ex:id]" },
            ...
{
    "id": 556410,
    "first_name": "Markus",
    "last_name": "Lanthaler",
    "gender": "male",
    "knows": [
      { "id": 586807, "name": "Christian Gütl" },
      { "id": 790980, "name": "John Doe" } ]
}




      "knows": {
        "type": "array",
        "model": "[foaf:knows]",
        "items": {
          "type": "object", "model": "[foaf:Person]",
          "properties": {
            "id": {
              "type": "number", "model": "[ex:id]" },
            ...
@base <http://example.com/user/556410> .
<#>   rdf:type foaf:Person .
<#>   ex:id 556410 .
<#>   foaf:firstName "Markus" .
<#>   foaf:surname "Lanthaler" .
<#>   foaf:gender "male" .
<#> foaf:knows <#knows/0> .
<#knows/0> rdf:type foaf:Person .
<#knows/0> ex:id 586807 .
<#knows/0> foaf:name "Christian Gütl" .
<#> foaf:knows <#knows/1> .
<#knows/1> rdf:type foaf:Person .
<#knows/1> ex:id 790980 .
<#knows/1> foaf:name "John Doe" .
<http://example.com/user/586807> owl:sameAs <#knows/0> .
<http://example.com/user/790980> owl:sameAs <#knows/1> .

More Related Content

What's hot

JSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataJSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked Data
Gregg Kellogg
 
JSON-LD Update
JSON-LD UpdateJSON-LD Update
JSON-LD Update
Gregg Kellogg
 
JSON-LD and MongoDB
JSON-LD and MongoDBJSON-LD and MongoDB
JSON-LD and MongoDB
Gregg Kellogg
 
Creating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with Hydra
Markus Lanthaler
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Luiz Messias
 
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB
 
Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...
Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...
Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...
André Ricardo Barreto de Oliveira
 
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, GermanyHarnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
André Ricardo Barreto de Oliveira
 
JSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFEJSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFE
Hiroyuki Anai
 
The Internet Is Your New Database: An Introduction To The Semantic Web
The Internet Is Your New Database: An Introduction To The Semantic WebThe Internet Is Your New Database: An Introduction To The Semantic Web
The Internet Is Your New Database: An Introduction To The Semantic Web
Will Strinz
 
HBase Lightning Talk
HBase Lightning TalkHBase Lightning Talk
HBase Lightning Talk
Scott Leberknight
 
Missing kids on you
Missing kids on youMissing kids on you
Missing kids on you
guest3fa681
 
Native json in the Cache' ObjectScript 2016.*
Native json in the Cache' ObjectScript 2016.*Native json in the Cache' ObjectScript 2016.*
Native json in the Cache' ObjectScript 2016.*
Timur Safin
 
New approaches to hypertext and REST in a mobile-first world
New approaches to hypertext and REST in a mobile-first worldNew approaches to hypertext and REST in a mobile-first world
New approaches to hypertext and REST in a mobile-first world
Israel Shirk
 
Citing Internet Sources
Citing Internet SourcesCiting Internet Sources
Citing Internet Sources
librarylady90
 
Linked Data and Tools
Linked Data and ToolsLinked Data and Tools
Linked Data and Tools
Pedro Szekely
 
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLBack to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
Joe Drumgoole
 
SF ElasticSearch Meetup - How HipChat Scaled to 1B Messages
SF ElasticSearch Meetup - How HipChat Scaled to 1B MessagesSF ElasticSearch Meetup - How HipChat Scaled to 1B Messages
SF ElasticSearch Meetup - How HipChat Scaled to 1B Messages
Atlassian
 
MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...
MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...
MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...
MongoDB
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
MongoDB
 

What's hot (20)

JSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked DataJSON-LD: JSON for Linked Data
JSON-LD: JSON for Linked Data
 
JSON-LD Update
JSON-LD UpdateJSON-LD Update
JSON-LD Update
 
JSON-LD and MongoDB
JSON-LD and MongoDBJSON-LD and MongoDB
JSON-LD and MongoDB
 
Creating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with Hydra
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation PipelinesMongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
MongoDB Europe 2016 - Advanced MongoDB Aggregation Pipelines
 
Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...
Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...
Liferay Search: Best Practices to Dramatically Improve Relevance - Liferay Sy...
 
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, GermanyHarnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
Harnessing The Power of Search - Liferay DEVCON 2015, Darmstadt, Germany
 
JSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFEJSON Schema in Web Frontend #insideFE
JSON Schema in Web Frontend #insideFE
 
The Internet Is Your New Database: An Introduction To The Semantic Web
The Internet Is Your New Database: An Introduction To The Semantic WebThe Internet Is Your New Database: An Introduction To The Semantic Web
The Internet Is Your New Database: An Introduction To The Semantic Web
 
HBase Lightning Talk
HBase Lightning TalkHBase Lightning Talk
HBase Lightning Talk
 
Missing kids on you
Missing kids on youMissing kids on you
Missing kids on you
 
Native json in the Cache' ObjectScript 2016.*
Native json in the Cache' ObjectScript 2016.*Native json in the Cache' ObjectScript 2016.*
Native json in the Cache' ObjectScript 2016.*
 
New approaches to hypertext and REST in a mobile-first world
New approaches to hypertext and REST in a mobile-first worldNew approaches to hypertext and REST in a mobile-first world
New approaches to hypertext and REST in a mobile-first world
 
Citing Internet Sources
Citing Internet SourcesCiting Internet Sources
Citing Internet Sources
 
Linked Data and Tools
Linked Data and ToolsLinked Data and Tools
Linked Data and Tools
 
Back to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQLBack to Basics Webinar 1 - Introduction to NoSQL
Back to Basics Webinar 1 - Introduction to NoSQL
 
SF ElasticSearch Meetup - How HipChat Scaled to 1B Messages
SF ElasticSearch Meetup - How HipChat Scaled to 1B MessagesSF ElasticSearch Meetup - How HipChat Scaled to 1B Messages
SF ElasticSearch Meetup - How HipChat Scaled to 1B Messages
 
MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...
MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...
MongoDB San Francisco 2013: Schema design presented by Jason Zucchetto, Consu...
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
 

Viewers also liked

Reasoned SPARQL
Reasoned SPARQLReasoned SPARQL
Reasoned SPARQL
Ruben Verborgh
 
Adrs Presentation March 2008
Adrs Presentation March 2008Adrs Presentation March 2008
Adrs Presentation March 2008
guestabd20
 
Semantic Web Services: State of the Art
Semantic Web Services: State of the ArtSemantic Web Services: State of the Art
Semantic Web Services: State of the Art
Markus Lanthaler
 
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsInitial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
Ruben Verborgh
 
The web – A hypermedia story
The web – A hypermedia storyThe web – A hypermedia story
The web – A hypermedia story
Ruben Verborgh
 
F-interop Meetup
F-interop MeetupF-interop Meetup
F-interop Meetup
Digital Catapult
 
Live DBpedia querying with high availability
Live DBpedia querying with high availabilityLive DBpedia querying with high availability
Live DBpedia querying with high availability
Ruben Verborgh
 
RESTdesc – Efficient runtime service discovery and consumption
RESTdesc – Efficient runtime service discovery and consumptionRESTdesc – Efficient runtime service discovery and consumption
RESTdesc – Efficient runtime service discovery and consumption
Ruben Verborgh
 
Hypermedia Cannot be the Engine
Hypermedia Cannot be the EngineHypermedia Cannot be the Engine
Hypermedia Cannot be the Engine
Ruben Verborgh
 
SAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based ServicesSAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based Services
Markus Lanthaler
 
A Deep Dive into JSON-LD and Hydra
A Deep Dive into JSON-LD and HydraA Deep Dive into JSON-LD and Hydra
A Deep Dive into JSON-LD and Hydra
Markus Lanthaler
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD Cloud
Ruben Verborgh
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
Alexandre Morgaut
 
Web Standards adoption in the AR market
Web Standards adoption in the AR marketWeb Standards adoption in the AR market
Web Standards adoption in the AR market
Rob Manson
 
LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...
LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...
LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...
Fabio Benedetti
 
Linked Data Generation Process
Linked Data Generation ProcessLinked Data Generation Process
Linked Data Generation Process
LD4SC
 
Distributed Affordance
Distributed AffordanceDistributed Affordance
Distributed Affordance
Ruben Verborgh
 
What is Hydra?
What is Hydra?What is Hydra?
What is Hydra?
Findwise
 
Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)
Phil Calçado
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry Dog
Ross Tuck
 

Viewers also liked (20)

Reasoned SPARQL
Reasoned SPARQLReasoned SPARQL
Reasoned SPARQL
 
Adrs Presentation March 2008
Adrs Presentation March 2008Adrs Presentation March 2008
Adrs Presentation March 2008
 
Semantic Web Services: State of the Art
Semantic Web Services: State of the ArtSemantic Web Services: State of the Art
Semantic Web Services: State of the Art
 
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern FragmentsInitial Usage Analysis of DBpedia's Triple Pattern Fragments
Initial Usage Analysis of DBpedia's Triple Pattern Fragments
 
The web – A hypermedia story
The web – A hypermedia storyThe web – A hypermedia story
The web – A hypermedia story
 
F-interop Meetup
F-interop MeetupF-interop Meetup
F-interop Meetup
 
Live DBpedia querying with high availability
Live DBpedia querying with high availabilityLive DBpedia querying with high availability
Live DBpedia querying with high availability
 
RESTdesc – Efficient runtime service discovery and consumption
RESTdesc – Efficient runtime service discovery and consumptionRESTdesc – Efficient runtime service discovery and consumption
RESTdesc – Efficient runtime service discovery and consumption
 
Hypermedia Cannot be the Engine
Hypermedia Cannot be the EngineHypermedia Cannot be the Engine
Hypermedia Cannot be the Engine
 
SAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based ServicesSAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based Services
 
A Deep Dive into JSON-LD and Hydra
A Deep Dive into JSON-LD and HydraA Deep Dive into JSON-LD and Hydra
A Deep Dive into JSON-LD and Hydra
 
The Lonesome LOD Cloud
The Lonesome LOD CloudThe Lonesome LOD Cloud
The Lonesome LOD Cloud
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
 
Web Standards adoption in the AR market
Web Standards adoption in the AR marketWeb Standards adoption in the AR market
Web Standards adoption in the AR market
 
LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...
LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...
LODeX: Schema Summarization and automatic SPARQL query generation for Linked ...
 
Linked Data Generation Process
Linked Data Generation ProcessLinked Data Generation Process
Linked Data Generation Process
 
Distributed Affordance
Distributed AffordanceDistributed Affordance
Distributed Affordance
 
What is Hydra?
What is Hydra?What is Hydra?
What is Hydra?
 
Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry Dog
 

Similar to A Semantic Description Language for RESTful Data Services to Combat Semaphobia

Advanced Json
Advanced JsonAdvanced Json
Advanced Json
guestfd7d7c
 
Data Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LDData Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LD
Fernando Lopez Aguilar
 
Building Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and HydraBuilding Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and Hydra
Markus Lanthaler
 
Typescript - why it's awesome
Typescript - why it's awesomeTypescript - why it's awesome
Typescript - why it's awesome
Piotr Miazga
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No Problem
Andrew Liu
 
Cognitive Search: Announcing the smartest enterprise search engine, now with ...
Cognitive Search: Announcing the smartest enterprise search engine, now with ...Cognitive Search: Announcing the smartest enterprise search engine, now with ...
Cognitive Search: Announcing the smartest enterprise search engine, now with ...
Microsoft Tech Community
 
Beautiful REST+JSON APIs with Ion
Beautiful REST+JSON APIs with IonBeautiful REST+JSON APIs with Ion
Beautiful REST+JSON APIs with Ion
Stormpath
 
Montreal Elasticsearch Meetup
Montreal Elasticsearch MeetupMontreal Elasticsearch Meetup
Montreal Elasticsearch Meetup
Loïc Bertron
 
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
Ruby Meditation
 
Drupal Mobile
Drupal MobileDrupal Mobile
Drupal Mobile
Ruben Teijeiro
 
IPTC News in JSON AGM 2013
IPTC News in JSON AGM 2013IPTC News in JSON AGM 2013
IPTC News in JSON AGM 2013
Stuart Myles
 
Working with the Web: 
Decoding JSON
Working with the Web: 
Decoding JSONWorking with the Web: 
Decoding JSON
Working with the Web: 
Decoding JSON
SV.CO
 
Automatically Spotting Cross-language Relations
Automatically Spotting Cross-language RelationsAutomatically Spotting Cross-language Relations
Automatically Spotting Cross-language Relations
Federico Tomassetti
 
Winning with Structured Data and Schema.org - OMLIVE 2018
Winning with Structured Data and Schema.org - OMLIVE 2018Winning with Structured Data and Schema.org - OMLIVE 2018
Winning with Structured Data and Schema.org - OMLIVE 2018
Izzi Smith
 
Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...
Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...
Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...
confluent
 
Elasticsearch for SQL Users
Elasticsearch for SQL UsersElasticsearch for SQL Users
Elasticsearch for SQL Users
Great Wide Open
 
Long-term Short-term See-Saw - Eliot Horowitz, MongoDB
Long-term Short-term See-Saw - Eliot Horowitz, MongoDB Long-term Short-term See-Saw - Eliot Horowitz, MongoDB
Long-term Short-term See-Saw - Eliot Horowitz, MongoDB
Traction Conf
 
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
South Tyrol Free Software Conference
 
Cognitive search oil and gas
Cognitive search oil and gasCognitive search oil and gas
Cognitive search oil and gas
Dania Kodeih
 
Elasticsearch in 15 Minutes
Elasticsearch in 15 MinutesElasticsearch in 15 Minutes
Elasticsearch in 15 Minutes
Karel Minarik
 

Similar to A Semantic Description Language for RESTful Data Services to Combat Semaphobia (20)

Advanced Json
Advanced JsonAdvanced Json
Advanced Json
 
Data Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LDData Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LD
 
Building Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and HydraBuilding Next-Generation Web APIs with JSON-LD and Hydra
Building Next-Generation Web APIs with JSON-LD and Hydra
 
Typescript - why it's awesome
Typescript - why it's awesomeTypescript - why it's awesome
Typescript - why it's awesome
 
Introducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No ProblemIntroducing Azure DocumentDB - NoSQL, No Problem
Introducing Azure DocumentDB - NoSQL, No Problem
 
Cognitive Search: Announcing the smartest enterprise search engine, now with ...
Cognitive Search: Announcing the smartest enterprise search engine, now with ...Cognitive Search: Announcing the smartest enterprise search engine, now with ...
Cognitive Search: Announcing the smartest enterprise search engine, now with ...
 
Beautiful REST+JSON APIs with Ion
Beautiful REST+JSON APIs with IonBeautiful REST+JSON APIs with Ion
Beautiful REST+JSON APIs with Ion
 
Montreal Elasticsearch Meetup
Montreal Elasticsearch MeetupMontreal Elasticsearch Meetup
Montreal Elasticsearch Meetup
 
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
 
Drupal Mobile
Drupal MobileDrupal Mobile
Drupal Mobile
 
IPTC News in JSON AGM 2013
IPTC News in JSON AGM 2013IPTC News in JSON AGM 2013
IPTC News in JSON AGM 2013
 
Working with the Web: 
Decoding JSON
Working with the Web: 
Decoding JSONWorking with the Web: 
Decoding JSON
Working with the Web: 
Decoding JSON
 
Automatically Spotting Cross-language Relations
Automatically Spotting Cross-language RelationsAutomatically Spotting Cross-language Relations
Automatically Spotting Cross-language Relations
 
Winning with Structured Data and Schema.org - OMLIVE 2018
Winning with Structured Data and Schema.org - OMLIVE 2018Winning with Structured Data and Schema.org - OMLIVE 2018
Winning with Structured Data and Schema.org - OMLIVE 2018
 
Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...
Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...
Closing the Loop in Extended Reality with Kafka Streams and Machine Learning ...
 
Elasticsearch for SQL Users
Elasticsearch for SQL UsersElasticsearch for SQL Users
Elasticsearch for SQL Users
 
Long-term Short-term See-Saw - Eliot Horowitz, MongoDB
Long-term Short-term See-Saw - Eliot Horowitz, MongoDB Long-term Short-term See-Saw - Eliot Horowitz, MongoDB
Long-term Short-term See-Saw - Eliot Horowitz, MongoDB
 
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
 
Cognitive search oil and gas
Cognitive search oil and gasCognitive search oil and gas
Cognitive search oil and gas
 
Elasticsearch in 15 Minutes
Elasticsearch in 15 MinutesElasticsearch in 15 Minutes
Elasticsearch in 15 Minutes
 

More from Markus Lanthaler

From Strings to Things to a Web of Services
From Strings to Things to a Web of ServicesFrom Strings to Things to a Web of Services
From Strings to Things to a Web of Services
Markus Lanthaler
 
The Web Is Changing — From Strings to Things
The Web Is Changing — From Strings to ThingsThe Web Is Changing — From Strings to Things
The Web Is Changing — From Strings to Things
Markus Lanthaler
 
Why and How to Optimize Your Data Architecture for an Integrated Future
Why and How to Optimize Your Data Architecture for an Integrated FutureWhy and How to Optimize Your Data Architecture for an Integrated Future
Why and How to Optimize Your Data Architecture for an Integrated Future
Markus Lanthaler
 
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a BreezeCreating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Markus Lanthaler
 
Stop Reinventing the Wheel! Use Linked Data to Build Better APIs
Stop Reinventing the Wheel! Use Linked Data to Build Better APIsStop Reinventing the Wheel! Use Linked Data to Build Better APIs
Stop Reinventing the Wheel! Use Linked Data to Build Better APIs
Markus Lanthaler
 
The Web 3.0 is just around the corner. Be prepared!
The Web 3.0 is just around the corner. Be prepared!The Web 3.0 is just around the corner. Be prepared!
The Web 3.0 is just around the corner. Be prepared!
Markus Lanthaler
 
Full-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with HydraFull-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with Hydra
Markus Lanthaler
 
Model Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON Structures
Markus Lanthaler
 
A Web of Things to Reduce Energy Wastage
A Web of Things to Reduce Energy WastageA Web of Things to Reduce Energy Wastage
A Web of Things to Reduce Energy Wastage
Markus Lanthaler
 
Towards a RESTful Service Ecosystem
Towards a RESTful Service EcosystemTowards a RESTful Service Ecosystem
Towards a RESTful Service Ecosystem
Markus Lanthaler
 

More from Markus Lanthaler (10)

From Strings to Things to a Web of Services
From Strings to Things to a Web of ServicesFrom Strings to Things to a Web of Services
From Strings to Things to a Web of Services
 
The Web Is Changing — From Strings to Things
The Web Is Changing — From Strings to ThingsThe Web Is Changing — From Strings to Things
The Web Is Changing — From Strings to Things
 
Why and How to Optimize Your Data Architecture for an Integrated Future
Why and How to Optimize Your Data Architecture for an Integrated FutureWhy and How to Optimize Your Data Architecture for an Integrated Future
Why and How to Optimize Your Data Architecture for an Integrated Future
 
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a BreezeCreating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
 
Stop Reinventing the Wheel! Use Linked Data to Build Better APIs
Stop Reinventing the Wheel! Use Linked Data to Build Better APIsStop Reinventing the Wheel! Use Linked Data to Build Better APIs
Stop Reinventing the Wheel! Use Linked Data to Build Better APIs
 
The Web 3.0 is just around the corner. Be prepared!
The Web 3.0 is just around the corner. Be prepared!The Web 3.0 is just around the corner. Be prepared!
The Web 3.0 is just around the corner. Be prepared!
 
Full-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with HydraFull-on Hypermedia APIs with Hydra
Full-on Hypermedia APIs with Hydra
 
Model Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON Structures
 
A Web of Things to Reduce Energy Wastage
A Web of Things to Reduce Energy WastageA Web of Things to Reduce Energy Wastage
A Web of Things to Reduce Energy Wastage
 
Towards a RESTful Service Ecosystem
Towards a RESTful Service EcosystemTowards a RESTful Service Ecosystem
Towards a RESTful Service Ecosystem
 

Recently uploaded

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
Edge AI and Vision Alliance
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 

Recently uploaded (20)

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
“How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-eff...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 

A Semantic Description Language for RESTful Data Services to Combat Semaphobia

  • 1. A Semantic Description Language for RESTful Web Services to Combat Semaphobia Markus Lanthaler Graz University of Technology
  • 2. Web services are increasingly popular
  • 3. Why do we Why do we need a website? need an API? 1995 2000 2005 2010 Of course we Of course we have a website have an API Adapted from T. Vitvar’s and J. Musser’s ECOWS 2010 Keynote, “ProgrammableWeb.com: Statistics, Trends, and Best Practices”
  • 4. Lightweight semantic annotations start to gain acceptance
  • 5. Increasing interest in the relationship of RESTful services and Linked Data
  • 6.
  • 7. Need a machine-readable service description © Clever Cupcakes
  • 8. © Nesster All previous efforts assume RPC-style. REST is different.
  • 10. simplicity son
  • 11. Metadata Element description Model Prefixes Links Type ref. Semantics Properties Items Media type & Prefix Name URI Target SEREDASj desc. Predicate Object(s) Name Request Semantics SEREDASj d. Variables Semantics Model Predicate Object(s) Name Binding Predicate Object(s) ref.
  • 12. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] }
  • 13. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } { "meta": { "prefixes": { "foaf": "http://xmlns.com/foaf/0.1/", "ex": "http://example.com/onto#", ... }, },
  • 14. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, "first_name": { "type": "string", "model": "[foaf:firstName]" }, "last_name": { "type": "string", "model": "[foaf:surname]" }, ...
  • 15. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, "first_name": { "type": "string", "model": "[foaf:firstName]" }, "last_name": { "type": "string", "model": "[foaf:surname]" }, ...
  • 16. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, "first_name": { "type": "string", "model": "[foaf:firstName]" }, "last_name": { "type": "string", "model": "[foaf:surname]" }, ...
  • 17. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, "first_name": { "type": "string", "model": "[foaf:firstName]" }, "last_name": { "type": "string", "model": "[foaf:surname]" }, ...
  • 18. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "links": { "/user/search{?query}": { "mediaType": "application/json", "seredasjDescription": "personlist.json", "semantics": { "[iana:relation]": "[iana:search]" }, "variables": { "query": { "model": "[foaf:name]" } } },
  • 19. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "/user/{id}": { "mediaType": "application/json", "seredasjDescription": "#", "variables": { "id": { "binding": "#properties/knows/id" } }, "requestDescription": "#" } }
  • 20. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] }
  • 21. A person. (object) id number first_name string The first name of a person. last_name string The surname of some person. gender string The gender of this Agent (typically but not necessarily 'male' or 'female'). knows array A person known by this person (indicating some level of reciprocated interaction between the parties). A person. (object) id number name string A name for some thing.
  • 22.
  • 23. strong emphasis on simplicity many use cases son discovery and composition
  • 24. Thank You © 2011, Markus Lanthaler. Some Rights Reserved. http://creativecommons.org/licenses/by-nc-sa/3.0/
  • 26. Image Credits (3) Adapted from T. Vitvar’s and J. Musser’s ECOWS 2010 Keynote, “ProgrammableWeb.com: Statistics, Trends, and Best Practices” (7) http://en.wikipedia.org/wiki/The_Scream (9) http://www.flickr.com/photos/clevercupcakes/4397152402/ (10) http://www.flickr.com/photos/nesster/3168425434/
  • 28. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "knows": { "type": "array", "model": "[foaf:knows]", "items": { "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, ...
  • 29. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "knows": { "type": "array", "model": "[foaf:knows]", "items": { "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, ...
  • 30. { "id": 556410, "first_name": "Markus", "last_name": "Lanthaler", "gender": "male", "knows": [ { "id": 586807, "name": "Christian Gütl" }, { "id": 790980, "name": "John Doe" } ] } "knows": { "type": "array", "model": "[foaf:knows]", "items": { "type": "object", "model": "[foaf:Person]", "properties": { "id": { "type": "number", "model": "[ex:id]" }, ...
  • 31. @base <http://example.com/user/556410> . <#> rdf:type foaf:Person . <#> ex:id 556410 . <#> foaf:firstName "Markus" . <#> foaf:surname "Lanthaler" . <#> foaf:gender "male" . <#> foaf:knows <#knows/0> . <#knows/0> rdf:type foaf:Person . <#knows/0> ex:id 586807 . <#knows/0> foaf:name "Christian Gütl" . <#> foaf:knows <#knows/1> . <#knows/1> rdf:type foaf:Person . <#knows/1> ex:id 790980 . <#knows/1> foaf:name "John Doe" . <http://example.com/user/586807> owl:sameAs <#knows/0> . <http://example.com/user/790980> owl:sameAs <#knows/1> .