SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Describing LDP Applications
with the Hydra Core Vocabulary
Nandana Mihindukulasooriya, and Raúl García-Castro
Ontology Engineering Group (OEG)
Facultad de Informática
Universidad Politécnica de Madrid
Linked Data Platform 1.0
2Nandana Mihindukulasooriya, OEG
An example application
3Nandana Mihindukulasooriya, OEG
• An address book – for managing contacts
• Contacts
• Create, List, Update, Delete
• User
• Retrieve
Alice
<<user>>
Alice’s
Address Book Alice’s
Contacts
Address Book
4Nandana Mihindukulasooriya, OEG
Address Book
Application
Address Book
Client
Domain Model
5Nandana Mihindukulasooriya, OEG
AddressBook Contact
•email
•fullName
•telephone
•url
User
•name •title
Schema Restrictions
• Data types
• Cardinalities
LDP Model
6Nandana Mihindukulasooriya, OEG
«BasicContainer»
AddressBook
/{personId}/contacts/
«LDPResource»
Contact
ldp:contains
/{personId}/contacts/{contactId}
«LDPResource»
User
/{personId}/
foaf:
primaryTopic
vcard:Email
vcard:Voice
rdfs:Resource
vcard:hasURL
xsd:string
vcard:hasEmail
vcard:hasTelephone
vcard:fn
xsd:string
foaf:name
Application
7Nandana Mihindukulasooriya, OEG
Address Book
Application
Address Book
Client
LDP Container - GET
8Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: text/turtle
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: text/turtle, application/ld+json
Content-Length: 250
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
LDP Container - GET
9Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: text/turtle
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: text/turtle
Content-Length: 250
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
supports LDP Basic Container interactions
LDP Container - GET
10Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: text/turtle
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: text/turtle, application/ld+json
Content-Length: 250
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
supports the mentioned HTTP operations on this resource
LDP Container - GET
11Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: text/turtle
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: text/turtle, application/ld+json
Content-Length: 250
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
Turtle and JSON-LD media types are accepted on POST
12Nandana Mihindukulasooriya, OEG
http://kristenbloggen.net/wp-content/uploads/good.jpg
LDP Container - POST
13Nandana Mihindukulasooriya, OEG
POST /nandana/contacts/ HTTP/1.1
Host: example.org
Slug: jane
Link: <http://www.w3.org/ns/ldp#Resource>; rel='type'
Content-Type: text/turtle
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
< > a ex:Contact, vcard:Individual;
vcard:hasURL <http://example.org/jane#me> ;
vcard:hasEmail <mailto:jane@example.com>;
vcard:fn “Jane Doe";
vcard:hasTelephone [ a vcard:Home, vcard:Voice;
vcard:hasValue <tel:+34655555555> ] .
expected Input
(vocabulary,
cardinalities)
supports Slug header
LDP Container - GET
14Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: text/turtle
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: text/turtle, application/ld+json
Accept-Patch: text/ldpatch
Content-Length: 250
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
Hypermedia controls
15Nandana Mihindukulasooriya, OEG
http://www.teresacommunicates.com/wp-content/uploads/2014/01/i-can-do-this.jpg
LDP Container - GET
16Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: application/vnd.ldp.addressbook+turtle
HTTP/1.1 200 OK
Content-Type: application/vnd.ldp.addressbook+turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: application/vnd.ldp.contact+turtle;
Accept-Patch: text/ldpatch
Content-Length: 250
@prefix ldp: <http://xmlns.com/foaf/0.1/> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
LDP Container V1 - GET
17Nandana Mihindukulasooriya, OEG
GET /alice/contacts/ HTTP/1.1
Host: example.org
Accept: application/vnd.ldp.addressbook.v1+turtle
HTTP/1.1 200 OK
Content-Type: application/vnd.ldp.addressbook.v1+turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type',
<http://www.w3.org/ns/ldp#Resource>; rel='type’
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: application/vnd.ldp.contact.v1+turtle;
Accept-Patch: text/ldpatch
Content-Length: 250
@prefix ldp: <http://xmlns.com/foaf/0.1/> .
@prefix dc: <http://purl.org/dc/terms/> .
@prefix dc: <http://example.org/vocab#> .
<http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
18Nandana Mihindukulasooriya, OEG
Hydra Core Vocabulary
19Nandana Mihindukulasooriya, OEG
LDP Container – GET /w Hydra API Link relation
20Nandana Mihindukulasooriya, OEG
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel=“type”,
<http://www.w3.org/ns/ldp#Resource>; rel=“type”
Link: <http://example.com/doc/>;
rel="http://www.w3.org/ns/hydra/core#apiDocumentation"
ETag: W/'123456711'
Allow: OPTIONS, HEAD, GET, POST
Accept-Post: text/turtle, application/ld+json
Accept-Patch: text/ldpatch
Content-Length: 250
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dc: <http://purl.org/dc/terms/> .
<http://example.org/contacts/> a ldp:BasicContainer;
foaf:primaryTopic <http://example.org/alice>;
ldp:contains <bob>, <jim> .
API Documentation
21Nandana Mihindukulasooriya, OEG
{
"@context": [
"http://www.w3.org/ns/hydra/context.jsonld",
{…}
],
"@id": "http://example.org/docs/",
"@type": "ApiDocumentation",
"title": "LDP Address Book API",
"entrypoint": "http://example.org/contacts/",
"supportedClass": [
{
"@id": "ex:AddressBook",
"@type": "hydra:Class",
"subClassOf": "ldp:BasicContainer",
"label": "An example address book",
…
},
….
],
…
API Documentation
22Nandana Mihindukulasooriya, OEG
{
"supportedClass": [
{
"@id": "ex:AddressBook",
"@type": "hydra:Class",
"subClassOf": "ldp:BasicContainer",
"label": "An example address book",
"supportedOperation": [
{
"@id": "_:create_new_contact",
"@type": "hydra:Operation",
"method": "POST",
"label": "creates a new contact in the address book",
"description": null,
"expects": “ex:Contact",
"returns": null,
"statusCodes": [
…
]
},
API Documentation
23Nandana Mihindukulasooriya, OEG
{
"supportedClass": [
{
"@id": "ex:AddressBook",
"@type": "hydra:Class",
"subClassOf": "ldp:BasicContainer",
"label": "An example address book",
"supportedOperation": [
{
"@id": "_:create_new_contact",
"@type": "hydra:Operation",
"method": "POST",
"label": "creates a new contact in the address book",
"description": null,
"expects": “ex:Contact",
"returns": null,
"statusCodes": [
…
]
},
API Documentation
24Nandana Mihindukulasooriya, OEG
{
"supportedClass": [
…..
{
"@id": "ex:Contact",
"@type": "hydra:Class",
"subClassOf": “vcard:Individual",
"label": “A contact",
" supportedProperty": [
{
"property": “vcard:hasEmail",
"hydra:title": “Email”,
"hydra:description": “Email of the contact",
"required": true,
"readable": true,
"writable": false,
},
Potential Conflicts
• Similar concepts in LDP and Hydra
• LDP Containers Vs Hydra Collections
• LDP Paging Vs Hydra Paged Collections
25Nandana Mihindukulasooriya, OEG
Collections vs Containers
26Nandana Mihindukulasooriya, OEG
@prefix hydra: <http://www.w3.org/ns/hydra/core#>
<http://example.org/alice/contacts> a hydra:Collection ;
hydra:member <http://example.org/alice/contacts/bob>,
<http://example.org/alice/contacts/jane> .
• Hydra Collection
• LDP Container
@prefix ldp: <http://www.w3.org/ns/ldp#> .
<http://example.org/alice/contacts> a ldp:BasicContainer ;
ldp:contains <http://example.org/alice/contacts/bob>,
<http://example.org/alice/contacts/jane> .
Hydra collection as an LDP Direct Container
27Nandana Mihindukulasooriya, OEG
@prefix hydra: <http://www.w3.org/ns/hydra/core#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
<http://example.org/alice/contacts> a hydra:Collection, ldp:DirectContainer;
ldp:membershipResource <>;
ldp:hasMemberRelation hydra:member;
ldp:contains <http://example.org/alice/contacts/bob>,
<http://example.org/alice/contacts/jane> ;
hydra:member <http://example.org/alice/contacts/bob>,
<http://example.org/alice/contacts/jane> ;
LDP Paging
28Nandana Mihindukulasooriya, OEG
GET /nandana?page2 HTTP/1.1
Host: example.org
Accept: text/turtle
Prefer: return=representation; max-triple-count="500"
HTTP/1.1 200 OK
Content-Type: text/turtle
ETag: "_87e52ce291112"
Link: <http://www.w3.org/ns/ldp#Resource>; rel="type",
<http://www.w3.org/ns/ldp#Page>; rel="type"
Link: <http://example.org/alice/contacts?p=3>; rel="next"
Link: <http://example.org/alice/contacts>; rel="canonical"; etag="_87e5"
Link: <http://example.org/alice/contacts?page1>; rel="first"
Link: <http://example.org/alice/contacts?p=4>; rel="last"
Link: <http://example.org/alice/contacts?page1>; rel="prev"
Allow: GET,OPTIONS,HEAD
Hydra PagedCollection
29Nandana Mihindukulasooriya, OEG
@prefix hydra: <http://www.w3.org/ns/hydra/core#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
{
"@context": "http://www.w3.org/ns/hydra/context.jsonld",
"@id": "http://example.org/alice/contacts?page=3",
"@type": "PagedCollection",
"totalItems": “50",
"itemsPerPage": "10",
"firstPage": "http://example.org/alice/contacts?page=1",
"nextPage": " http://example.org/alice/contacts?page=4",
"previousPage": "http://example.org/alice/contacts?page=2",
"lastPage": "http://example.org/alice/contacts?page=5",
"member": [
... the members of this PagedCollection ...
]
}
Conclusions
• LDP needs mechanisms for vocabulary and
affordance discovery
• Hydra Core vocabulary can be used describe LDP
application
• Why not just Hydra?
• There are overlaps in some areas
• Overlaps with the W3C RDF Shapes WG
30Nandana Mihindukulasooriya, OEG

Weitere ähnliche Inhalte

Was ist angesagt?

Scaling up Linked Data
Scaling up Linked DataScaling up Linked Data
Scaling up Linked DataEUCLID project
 
Crossref XML and tools for small publishers (EASE Conference 2018)
Crossref XML and tools for small publishers (EASE Conference 2018)Crossref XML and tools for small publishers (EASE Conference 2018)
Crossref XML and tools for small publishers (EASE Conference 2018)Crossref
 
Approaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
Approaching Join Index: Presented by Mikhail Khludnev, Grid DynamicsApproaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
Approaching Join Index: Presented by Mikhail Khludnev, Grid DynamicsLucidworks
 
Do the LOCAH-Motion: How to Make Bibliographic and Archival Linked Data
Do the LOCAH-Motion: How to Make Bibliographic and Archival Linked DataDo the LOCAH-Motion: How to Make Bibliographic and Archival Linked Data
Do the LOCAH-Motion: How to Make Bibliographic and Archival Linked DataAdrian Stevenson
 
morph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementationmorph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementationNandana Mihindukulasooriya
 
Application integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standardsApplication integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standardsNandana Mihindukulasooriya
 
DC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemasDC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemasMikael Nilsson
 
Slug: A Semantic Web Crawler
Slug: A Semantic Web CrawlerSlug: A Semantic Web Crawler
Slug: A Semantic Web CrawlerLeigh Dodds
 
The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)Myungjin Lee
 
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
Open for Business  Open Archives, OpenURL, RSS and the Dublin CoreOpen for Business  Open Archives, OpenURL, RSS and the Dublin Core
Open for Business Open Archives, OpenURL, RSS and the Dublin CoreAndy Powell
 
Open for Business - Open Archives, OpenURL, RSS and the Dublin Core
Open for Business - Open Archives, OpenURL, RSS and the Dublin CoreOpen for Business - Open Archives, OpenURL, RSS and the Dublin Core
Open for Business - Open Archives, OpenURL, RSS and the Dublin CoreAndy Powell
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web ServicesJeffrey Anderson
 
Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014Grid Dynamics
 
Mikhail khludnev: approaching-join index for lucene
Mikhail khludnev:  approaching-join index for luceneMikhail khludnev:  approaching-join index for lucene
Mikhail khludnev: approaching-join index for luceneGrid Dynamics
 
Poster GraphQL-LD: Linked Data Querying with GraphQL
Poster GraphQL-LD: Linked Data Querying with GraphQLPoster GraphQL-LD: Linked Data Querying with GraphQL
Poster GraphQL-LD: Linked Data Querying with GraphQLRuben Taelman
 

Was ist angesagt? (20)

Scaling up Linked Data
Scaling up Linked DataScaling up Linked Data
Scaling up Linked Data
 
Crossref XML and tools for small publishers (EASE Conference 2018)
Crossref XML and tools for small publishers (EASE Conference 2018)Crossref XML and tools for small publishers (EASE Conference 2018)
Crossref XML and tools for small publishers (EASE Conference 2018)
 
Approaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
Approaching Join Index: Presented by Mikhail Khludnev, Grid DynamicsApproaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
Approaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
 
Querying Linked Data
Querying Linked DataQuerying Linked Data
Querying Linked Data
 
Odata
OdataOdata
Odata
 
Do the LOCAH-Motion: How to Make Bibliographic and Archival Linked Data
Do the LOCAH-Motion: How to Make Bibliographic and Archival Linked DataDo the LOCAH-Motion: How to Make Bibliographic and Archival Linked Data
Do the LOCAH-Motion: How to Make Bibliographic and Archival Linked Data
 
morph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementationmorph-LDP: An R2RML-based Linked Data Platform implementation
morph-LDP: An R2RML-based Linked Data Platform implementation
 
Application integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standardsApplication integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standards
 
Technical Background
Technical BackgroundTechnical Background
Technical Background
 
DC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemasDC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemas
 
Slug: A Semantic Web Crawler
Slug: A Semantic Web CrawlerSlug: A Semantic Web Crawler
Slug: A Semantic Web Crawler
 
The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)
 
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
Open for Business  Open Archives, OpenURL, RSS and the Dublin CoreOpen for Business  Open Archives, OpenURL, RSS and the Dublin Core
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
 
Open for Business - Open Archives, OpenURL, RSS and the Dublin Core
Open for Business - Open Archives, OpenURL, RSS and the Dublin CoreOpen for Business - Open Archives, OpenURL, RSS and the Dublin Core
Open for Business - Open Archives, OpenURL, RSS and the Dublin Core
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
 
Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014Approaching Join Index - Lucene/Solr Revolution 2014
Approaching Join Index - Lucene/Solr Revolution 2014
 
Linked data and voyager
Linked data and voyagerLinked data and voyager
Linked data and voyager
 
Mikhail khludnev: approaching-join index for lucene
Mikhail khludnev:  approaching-join index for luceneMikhail khludnev:  approaching-join index for lucene
Mikhail khludnev: approaching-join index for lucene
 
Poster GraphQL-LD: Linked Data Querying with GraphQL
Poster GraphQL-LD: Linked Data Querying with GraphQLPoster GraphQL-LD: Linked Data Querying with GraphQL
Poster GraphQL-LD: Linked Data Querying with GraphQL
 
2007 03 12 Swecr 2
2007 03 12 Swecr 22007 03 12 Swecr 2
2007 03 12 Swecr 2
 

Ähnlich wie Describing LDP Applications with the Hydra Core Vocabulary

2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIsJosef Petrák
 
Semantic Web introduction
Semantic Web introductionSemantic Web introduction
Semantic Web introductionGraphity
 
RDFa: an introduction
RDFa: an introductionRDFa: an introduction
RDFa: an introductionKai Li
 
What’s in a structured value?
What’s in a structured value?What’s in a structured value?
What’s in a structured value?Andy Powell
 
Linked Open Data: A simple how-to
Linked Open Data: A simple how-toLinked Open Data: A simple how-to
Linked Open Data: A simple how-tonvitucci
 
The Semantic Web An Introduction
The Semantic Web An IntroductionThe Semantic Web An Introduction
The Semantic Web An Introductionshaouy
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis PlatformLeigh Dodds
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsRinke Hoekstra
 
Ruby semweb 2011-12-06
Ruby semweb 2011-12-06Ruby semweb 2011-12-06
Ruby semweb 2011-12-06Gregg Kellogg
 
Topic Modelling and APIs
Topic Modelling and APIsTopic Modelling and APIs
Topic Modelling and APIsAli Kheyrollahi
 
Semantic Web
Semantic WebSemantic Web
Semantic Webhardchiu
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLMyungjin Lee
 
Chapter 3 semantic web
Chapter 3 semantic webChapter 3 semantic web
Chapter 3 semantic webR A Akerkar
 
Creating APIs over RDF
Creating APIs over RDFCreating APIs over RDF
Creating APIs over RDFLeigh Dodds
 
Creating APIs over RDF
Creating APIs over RDFCreating APIs over RDF
Creating APIs over RDFLeigh Dodds
 
Linked data platform adapter for bugzilla poster
Linked data platform adapter for bugzilla posterLinked data platform adapter for bugzilla poster
Linked data platform adapter for bugzilla posterNandana Mihindukulasooriya
 
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...Benjamin Adrian
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itJose Luis Lopez Pino
 

Ähnlich wie Describing LDP Applications with the Hydra Core Vocabulary (20)

2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
 
Semantic Web introduction
Semantic Web introductionSemantic Web introduction
Semantic Web introduction
 
RDFa: an introduction
RDFa: an introductionRDFa: an introduction
RDFa: an introduction
 
Data in RDF
Data in RDFData in RDF
Data in RDF
 
What’s in a structured value?
What’s in a structured value?What’s in a structured value?
What’s in a structured value?
 
Linked Open Data: A simple how-to
Linked Open Data: A simple how-toLinked Open Data: A simple how-to
Linked Open Data: A simple how-to
 
The Semantic Web An Introduction
The Semantic Web An IntroductionThe Semantic Web An Introduction
The Semantic Web An Introduction
 
Getting Started With The Talis Platform
Getting Started With The Talis PlatformGetting Started With The Talis Platform
Getting Started With The Talis Platform
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
 
Odata
OdataOdata
Odata
 
Ruby semweb 2011-12-06
Ruby semweb 2011-12-06Ruby semweb 2011-12-06
Ruby semweb 2011-12-06
 
Topic Modelling and APIs
Topic Modelling and APIsTopic Modelling and APIs
Topic Modelling and APIs
 
Semantic Web
Semantic WebSemantic Web
Semantic Web
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
Chapter 3 semantic web
Chapter 3 semantic webChapter 3 semantic web
Chapter 3 semantic web
 
Creating APIs over RDF
Creating APIs over RDFCreating APIs over RDF
Creating APIs over RDF
 
Creating APIs over RDF
Creating APIs over RDFCreating APIs over RDF
Creating APIs over RDF
 
Linked data platform adapter for bugzilla poster
Linked data platform adapter for bugzilla posterLinked data platform adapter for bugzilla poster
Linked data platform adapter for bugzilla poster
 
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
Epiphany: Adaptable RDFa Generation Linking the Web of Documents to the Web o...
 
RDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use itRDFa: introduction, comparison with microdata and microformats and how to use it
RDFa: introduction, comparison with microdata and microformats and how to use it
 

Mehr von Nandana Mihindukulasooriya

A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...
A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...
A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...Nandana Mihindukulasooriya
 
Leveraging Semantic Parsing for Relation Linking over Knowledge Bases
Leveraging Semantic Parsing for Relation Linking over Knowledge BasesLeveraging Semantic Parsing for Relation Linking over Knowledge Bases
Leveraging Semantic Parsing for Relation Linking over Knowledge BasesNandana Mihindukulasooriya
 
A Distributed Transaction Model for Read-Write Linked Data Applications
A Distributed Transaction Model for Read-Write Linked Data ApplicationsA Distributed Transaction Model for Read-Write Linked Data Applications
A Distributed Transaction Model for Read-Write Linked Data ApplicationsNandana Mihindukulasooriya
 
Loupe API - A Linked Data Profiling Service for Quality Assessment
Loupe API - A Linked Data Profiling Service for Quality AssessmentLoupe API - A Linked Data Profiling Service for Quality Assessment
Loupe API - A Linked Data Profiling Service for Quality AssessmentNandana Mihindukulasooriya
 
Collaborative Ontology Evolution and Data Quality - An Empirical Analysis
Collaborative Ontology Evolution and Data Quality - An Empirical AnalysisCollaborative Ontology Evolution and Data Quality - An Empirical Analysis
Collaborative Ontology Evolution and Data Quality - An Empirical AnalysisNandana Mihindukulasooriya
 
A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...
A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...
A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...Nandana Mihindukulasooriya
 
An analysis of the quality issues of the properties available in the Spanish ...
An analysis of the quality issues of the properties available in the Spanish ...An analysis of the quality issues of the properties available in the Spanish ...
An analysis of the quality issues of the properties available in the Spanish ...Nandana Mihindukulasooriya
 
Linked Data Platform as a novel approach for Enterprise Application Integra...
Linked Data Platform as a novel approach for Enterprise Application Integra...Linked Data Platform as a novel approach for Enterprise Application Integra...
Linked Data Platform as a novel approach for Enterprise Application Integra...Nandana Mihindukulasooriya
 
ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data Nandana Mihindukulasooriya
 
Erasmus Mundus - Overview, Opportunities, and Details
Erasmus Mundus - Overview, Opportunities, and Details Erasmus Mundus - Overview, Opportunities, and Details
Erasmus Mundus - Overview, Opportunities, and Details Nandana Mihindukulasooriya
 
Erasmus Mundus - European higher education opportunities for Sri Lankans
Erasmus Mundus - European higher education opportunities for Sri Lankans Erasmus Mundus - European higher education opportunities for Sri Lankans
Erasmus Mundus - European higher education opportunities for Sri Lankans Nandana Mihindukulasooriya
 

Mehr von Nandana Mihindukulasooriya (20)

A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...
A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...
A Framework for Linked Data Quality based on Data Profiling and RDF Shape Ind...
 
Leveraging Semantic Parsing for Relation Linking over Knowledge Bases
Leveraging Semantic Parsing for Relation Linking over Knowledge BasesLeveraging Semantic Parsing for Relation Linking over Knowledge Bases
Leveraging Semantic Parsing for Relation Linking over Knowledge Bases
 
ISWC 2020 - Semantic Answer Type Prediction
ISWC 2020 - Semantic Answer Type PredictionISWC 2020 - Semantic Answer Type Prediction
ISWC 2020 - Semantic Answer Type Prediction
 
Fitur - HackaTrips 2018!
Fitur - HackaTrips 2018!Fitur - HackaTrips 2018!
Fitur - HackaTrips 2018!
 
A Distributed Transaction Model for Read-Write Linked Data Applications
A Distributed Transaction Model for Read-Write Linked Data ApplicationsA Distributed Transaction Model for Read-Write Linked Data Applications
A Distributed Transaction Model for Read-Write Linked Data Applications
 
Repairing Hidden Links in Linked Data
Repairing Hidden Links in Linked DataRepairing Hidden Links in Linked Data
Repairing Hidden Links in Linked Data
 
Loupe API - A Linked Data Profiling Service for Quality Assessment
Loupe API - A Linked Data Profiling Service for Quality AssessmentLoupe API - A Linked Data Profiling Service for Quality Assessment
Loupe API - A Linked Data Profiling Service for Quality Assessment
 
Research Poster Design
Research Poster DesignResearch Poster Design
Research Poster Design
 
Hidden Gems
Hidden GemsHidden Gems
Hidden Gems
 
Collaborative Ontology Evolution and Data Quality - An Empirical Analysis
Collaborative Ontology Evolution and Data Quality - An Empirical AnalysisCollaborative Ontology Evolution and Data Quality - An Empirical Analysis
Collaborative Ontology Evolution and Data Quality - An Empirical Analysis
 
Erasmus+ promotional event - Kandy, Sri Lanka
Erasmus+ promotional event - Kandy, Sri LankaErasmus+ promotional event - Kandy, Sri Lanka
Erasmus+ promotional event - Kandy, Sri Lanka
 
Loupe model - Use Cases and Requirements
Loupe model - Use Cases and Requirements Loupe model - Use Cases and Requirements
Loupe model - Use Cases and Requirements
 
4V - WP3 Progress Report (TIN2013-46238)
4V - WP3 Progress Report (TIN2013-46238)4V - WP3 Progress Report (TIN2013-46238)
4V - WP3 Progress Report (TIN2013-46238)
 
A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...
A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...
A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases : The 3cixt...
 
An analysis of the quality issues of the properties available in the Spanish ...
An analysis of the quality issues of the properties available in the Spanish ...An analysis of the quality issues of the properties available in the Spanish ...
An analysis of the quality issues of the properties available in the Spanish ...
 
Linked Data Platform as a novel approach for Enterprise Application Integra...
Linked Data Platform as a novel approach for Enterprise Application Integra...Linked Data Platform as a novel approach for Enterprise Application Integra...
Linked Data Platform as a novel approach for Enterprise Application Integra...
 
ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data ALM iStack - Application Lifecycle Management using Linked Data
ALM iStack - Application Lifecycle Management using Linked Data
 
morph-LDP Demo
morph-LDP Demomorph-LDP Demo
morph-LDP Demo
 
Erasmus Mundus - Overview, Opportunities, and Details
Erasmus Mundus - Overview, Opportunities, and Details Erasmus Mundus - Overview, Opportunities, and Details
Erasmus Mundus - Overview, Opportunities, and Details
 
Erasmus Mundus - European higher education opportunities for Sri Lankans
Erasmus Mundus - European higher education opportunities for Sri Lankans Erasmus Mundus - European higher education opportunities for Sri Lankans
Erasmus Mundus - European higher education opportunities for Sri Lankans
 

Kürzlich hochgeladen

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Describing LDP Applications with the Hydra Core Vocabulary

  • 1. Describing LDP Applications with the Hydra Core Vocabulary Nandana Mihindukulasooriya, and Raúl García-Castro Ontology Engineering Group (OEG) Facultad de Informática Universidad Politécnica de Madrid
  • 2. Linked Data Platform 1.0 2Nandana Mihindukulasooriya, OEG
  • 3. An example application 3Nandana Mihindukulasooriya, OEG • An address book – for managing contacts • Contacts • Create, List, Update, Delete • User • Retrieve Alice <<user>> Alice’s Address Book Alice’s Contacts
  • 4. Address Book 4Nandana Mihindukulasooriya, OEG Address Book Application Address Book Client
  • 5. Domain Model 5Nandana Mihindukulasooriya, OEG AddressBook Contact •email •fullName •telephone •url User •name •title Schema Restrictions • Data types • Cardinalities
  • 6. LDP Model 6Nandana Mihindukulasooriya, OEG «BasicContainer» AddressBook /{personId}/contacts/ «LDPResource» Contact ldp:contains /{personId}/contacts/{contactId} «LDPResource» User /{personId}/ foaf: primaryTopic vcard:Email vcard:Voice rdfs:Resource vcard:hasURL xsd:string vcard:hasEmail vcard:hasTelephone vcard:fn xsd:string foaf:name
  • 7. Application 7Nandana Mihindukulasooriya, OEG Address Book Application Address Book Client
  • 8. LDP Container - GET 8Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: text/turtle HTTP/1.1 200 OK Content-Type: text/turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: text/turtle, application/ld+json Content-Length: 250 @prefix ldp: <http://www.w3.org/ns/ldp#> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> .
  • 9. LDP Container - GET 9Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: text/turtle HTTP/1.1 200 OK Content-Type: text/turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: text/turtle Content-Length: 250 @prefix ldp: <http://www.w3.org/ns/ldp#> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> . supports LDP Basic Container interactions
  • 10. LDP Container - GET 10Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: text/turtle HTTP/1.1 200 OK Content-Type: text/turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: text/turtle, application/ld+json Content-Length: 250 @prefix ldp: <http://www.w3.org/ns/ldp#> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> . supports the mentioned HTTP operations on this resource
  • 11. LDP Container - GET 11Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: text/turtle HTTP/1.1 200 OK Content-Type: text/turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: text/turtle, application/ld+json Content-Length: 250 @prefix ldp: <http://www.w3.org/ns/ldp#> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> . Turtle and JSON-LD media types are accepted on POST
  • 13. LDP Container - POST 13Nandana Mihindukulasooriya, OEG POST /nandana/contacts/ HTTP/1.1 Host: example.org Slug: jane Link: <http://www.w3.org/ns/ldp#Resource>; rel='type' Content-Type: text/turtle @prefix vcard: <http://www.w3.org/2006/vcard/ns#> . < > a ex:Contact, vcard:Individual; vcard:hasURL <http://example.org/jane#me> ; vcard:hasEmail <mailto:jane@example.com>; vcard:fn “Jane Doe"; vcard:hasTelephone [ a vcard:Home, vcard:Voice; vcard:hasValue <tel:+34655555555> ] . expected Input (vocabulary, cardinalities) supports Slug header
  • 14. LDP Container - GET 14Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: text/turtle HTTP/1.1 200 OK Content-Type: text/turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: text/turtle, application/ld+json Accept-Patch: text/ldpatch Content-Length: 250 @prefix ldp: <http://www.w3.org/ns/ldp#> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> . Hypermedia controls
  • 16. LDP Container - GET 16Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: application/vnd.ldp.addressbook+turtle HTTP/1.1 200 OK Content-Type: application/vnd.ldp.addressbook+turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: application/vnd.ldp.contact+turtle; Accept-Patch: text/ldpatch Content-Length: 250 @prefix ldp: <http://xmlns.com/foaf/0.1/> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> .
  • 17. LDP Container V1 - GET 17Nandana Mihindukulasooriya, OEG GET /alice/contacts/ HTTP/1.1 Host: example.org Accept: application/vnd.ldp.addressbook.v1+turtle HTTP/1.1 200 OK Content-Type: application/vnd.ldp.addressbook.v1+turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel='type', <http://www.w3.org/ns/ldp#Resource>; rel='type’ ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: application/vnd.ldp.contact.v1+turtle; Accept-Patch: text/ldpatch Content-Length: 250 @prefix ldp: <http://xmlns.com/foaf/0.1/> . @prefix dc: <http://purl.org/dc/terms/> . @prefix dc: <http://example.org/vocab#> . <http://example.org/contacts/> a ex:AddressBook, ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> .
  • 19. Hydra Core Vocabulary 19Nandana Mihindukulasooriya, OEG
  • 20. LDP Container – GET /w Hydra API Link relation 20Nandana Mihindukulasooriya, OEG HTTP/1.1 200 OK Content-Type: text/turtle; charset=UTF-8 Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel=“type”, <http://www.w3.org/ns/ldp#Resource>; rel=“type” Link: <http://example.com/doc/>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation" ETag: W/'123456711' Allow: OPTIONS, HEAD, GET, POST Accept-Post: text/turtle, application/ld+json Accept-Patch: text/ldpatch Content-Length: 250 @prefix ldp: <http://www.w3.org/ns/ldp#> . @prefix dc: <http://purl.org/dc/terms/> . <http://example.org/contacts/> a ldp:BasicContainer; foaf:primaryTopic <http://example.org/alice>; ldp:contains <bob>, <jim> .
  • 21. API Documentation 21Nandana Mihindukulasooriya, OEG { "@context": [ "http://www.w3.org/ns/hydra/context.jsonld", {…} ], "@id": "http://example.org/docs/", "@type": "ApiDocumentation", "title": "LDP Address Book API", "entrypoint": "http://example.org/contacts/", "supportedClass": [ { "@id": "ex:AddressBook", "@type": "hydra:Class", "subClassOf": "ldp:BasicContainer", "label": "An example address book", … }, …. ], …
  • 22. API Documentation 22Nandana Mihindukulasooriya, OEG { "supportedClass": [ { "@id": "ex:AddressBook", "@type": "hydra:Class", "subClassOf": "ldp:BasicContainer", "label": "An example address book", "supportedOperation": [ { "@id": "_:create_new_contact", "@type": "hydra:Operation", "method": "POST", "label": "creates a new contact in the address book", "description": null, "expects": “ex:Contact", "returns": null, "statusCodes": [ … ] },
  • 23. API Documentation 23Nandana Mihindukulasooriya, OEG { "supportedClass": [ { "@id": "ex:AddressBook", "@type": "hydra:Class", "subClassOf": "ldp:BasicContainer", "label": "An example address book", "supportedOperation": [ { "@id": "_:create_new_contact", "@type": "hydra:Operation", "method": "POST", "label": "creates a new contact in the address book", "description": null, "expects": “ex:Contact", "returns": null, "statusCodes": [ … ] },
  • 24. API Documentation 24Nandana Mihindukulasooriya, OEG { "supportedClass": [ ….. { "@id": "ex:Contact", "@type": "hydra:Class", "subClassOf": “vcard:Individual", "label": “A contact", " supportedProperty": [ { "property": “vcard:hasEmail", "hydra:title": “Email”, "hydra:description": “Email of the contact", "required": true, "readable": true, "writable": false, },
  • 25. Potential Conflicts • Similar concepts in LDP and Hydra • LDP Containers Vs Hydra Collections • LDP Paging Vs Hydra Paged Collections 25Nandana Mihindukulasooriya, OEG
  • 26. Collections vs Containers 26Nandana Mihindukulasooriya, OEG @prefix hydra: <http://www.w3.org/ns/hydra/core#> <http://example.org/alice/contacts> a hydra:Collection ; hydra:member <http://example.org/alice/contacts/bob>, <http://example.org/alice/contacts/jane> . • Hydra Collection • LDP Container @prefix ldp: <http://www.w3.org/ns/ldp#> . <http://example.org/alice/contacts> a ldp:BasicContainer ; ldp:contains <http://example.org/alice/contacts/bob>, <http://example.org/alice/contacts/jane> .
  • 27. Hydra collection as an LDP Direct Container 27Nandana Mihindukulasooriya, OEG @prefix hydra: <http://www.w3.org/ns/hydra/core#> . @prefix ldp: <http://www.w3.org/ns/ldp#> . <http://example.org/alice/contacts> a hydra:Collection, ldp:DirectContainer; ldp:membershipResource <>; ldp:hasMemberRelation hydra:member; ldp:contains <http://example.org/alice/contacts/bob>, <http://example.org/alice/contacts/jane> ; hydra:member <http://example.org/alice/contacts/bob>, <http://example.org/alice/contacts/jane> ;
  • 28. LDP Paging 28Nandana Mihindukulasooriya, OEG GET /nandana?page2 HTTP/1.1 Host: example.org Accept: text/turtle Prefer: return=representation; max-triple-count="500" HTTP/1.1 200 OK Content-Type: text/turtle ETag: "_87e52ce291112" Link: <http://www.w3.org/ns/ldp#Resource>; rel="type", <http://www.w3.org/ns/ldp#Page>; rel="type" Link: <http://example.org/alice/contacts?p=3>; rel="next" Link: <http://example.org/alice/contacts>; rel="canonical"; etag="_87e5" Link: <http://example.org/alice/contacts?page1>; rel="first" Link: <http://example.org/alice/contacts?p=4>; rel="last" Link: <http://example.org/alice/contacts?page1>; rel="prev" Allow: GET,OPTIONS,HEAD
  • 29. Hydra PagedCollection 29Nandana Mihindukulasooriya, OEG @prefix hydra: <http://www.w3.org/ns/hydra/core#> . @prefix ldp: <http://www.w3.org/ns/ldp#> . { "@context": "http://www.w3.org/ns/hydra/context.jsonld", "@id": "http://example.org/alice/contacts?page=3", "@type": "PagedCollection", "totalItems": “50", "itemsPerPage": "10", "firstPage": "http://example.org/alice/contacts?page=1", "nextPage": " http://example.org/alice/contacts?page=4", "previousPage": "http://example.org/alice/contacts?page=2", "lastPage": "http://example.org/alice/contacts?page=5", "member": [ ... the members of this PagedCollection ... ] }
  • 30. Conclusions • LDP needs mechanisms for vocabulary and affordance discovery • Hydra Core vocabulary can be used describe LDP application • Why not just Hydra? • There are overlaps in some areas • Overlaps with the W3C RDF Shapes WG 30Nandana Mihindukulasooriya, OEG