SlideShare a Scribd company logo
1 of 21
OData / SPARQL
Interop
Kal Ahmed (@kal_ahmed)
Graham Moore (@gra_moore)
Agenda
• Quick Overview of OData
• Motivation
• Implementation
• Questions
OData
“OData is a standardized protocol
for creating and consuming
data APIs”
odata.org
Entity-Centric
• Collection of Entity Sets
• Service metadata
– List of entity sets
– Schema for entities
• Primary Keys
• Properties & Associations
• Results are returned as entities by default
URL-based access
http://example.org/Films
http://example.org/Films(1234)
http://example.org/Films?$filter=Runtime lt 120
http://example.org/Films(1234)/Director
http://example.org/Films(1234)?$expand=Director,Actor
RESTful Update
• POST to entity set‟s URL
• PUT, PATCH, MERGE or DELETE to the
edit URL of an existing entity
• Associations can also be exposed as a
collection of link resources.
Other Features
• Media entities
– Combine metadata properties with a special
media source URL.
• Named Streams
– Entity properties of type Edm.Stream
– Represented in the entity as a URL
• Custom Actions and Functions
– Entity set or entity-specific operations
exposed as URLs
Reasons to Like OData
• Schema discovery
• Client tooling support (esp for .NET)
• Easy to experiment
• Easy to use from JavaScript
• Growing set of OData consumers
– Data browsers
– GUI controls
– Applications
Criticisms of OData
• Services tend to be siloes
• No shared ontologies
• Perceived as a vendor-specific protocol
ODATA / SPARQL INTEROP
Motivation
• We like the features of OData
• We like the flexibility of RDF / SPARQL
• Goals:
– Read access to open SPARQL endpoints via
OData
– Declarative configuration
– Automatic configuration via RDF schema /
SPARQL introspection
Previous Attempt
• LINQ – to – SPARQL
– Hand-crafted model as annotated C#
interfaces
– Generated implementation classes
– OData -> LINQ -> SPARQL and all the way
back
– Worked, but it was clunky
Implementation
• Proxy service for a SPARQL endpoint
– OData service description derived from the
schema of the SPARQL endpoint
– OData request converted to a SPARQL query
– SPARQL response converted to OData response
– Stateless
– Configured by an annotated OData schema
document
http://github.com/brightstardb/odata-sparql
Annotating OData Services
• Annotations are part of the OData spec.
• We define annotations for:
– URI namespace for entity primary keys
– URIs for entity types, properties and associations
– Direction of associations
• Annotations are made to the published
schema
• Allows consumer to reconstruct the source
triples
Implementation Issues
• DESCRIBE is not an option
• CONSTRUCTed graphs
– Sorting
– Identifying the entity resources
• Server-controlled paging for OData
• Paging requires sub-queries
• Entities require a common identifier prefix
Select a Single Film
OData
/Films(„Un_Chien_Andalou‟)
SPARQL
CONSTRUCT {
res:Un_Chien_Andalou ?p ?o .
} WHERE {
res:Un_Chien_Andalou ?p ?o .
}
Enumerate Films
OData
/Films
SPARQL
CONSTRUCT {
?v1 ?v1_p ?v1_o.
?v1 ods:variable-binding “v1”
} WHERE {
?v1 ?v1_p ?v1_o .
{
SELECT { ?v1 rdf:type o:Film . } LIMIT 100
}
}
Property Navigation
OData
/Films(„Un_Chien_Andalou‟)/Director
SPARQL
CONSTRUCT {
?v1 ?v1_p ?v1_o .
?v1 ods:variable-binding “v1” .
} WHERE {
?v1 ?v1_p ?v1_o .
SELECT {
?v1 WHERE {
res:Un_Chien_Andalou p:director ?v1 .
} LIMIT 100
}
Questions
• In discussing Open Data what is the
perceived importance of standards
interoperability ?
• If it is important, where does the
responsibility for interoperability lie ?
More Questions
• What could W3C Linked Data Platform
learn from OData and vice-versa ?
• Should these efforts be sharing use-cases ?
Final Question
• Is there a meta-model for an entity-
oriented view of data resources ?
One that both OData and LDP could share.

More Related Content

What's hot

Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...Simplilearn
 
Introduction to Spark SQL training workshop
Introduction to Spark SQL training workshopIntroduction to Spark SQL training workshop
Introduction to Spark SQL training workshop(Susan) Xinh Huynh
 
Spark from the Surface
Spark from the SurfaceSpark from the Surface
Spark from the SurfaceJosi Aranda
 
New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1Stefan Schmidt
 
Introduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkIntroduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkTaras Matyashovsky
 
Introduction to Machine Learning for Oracle Database Professionals
Introduction to Machine Learning for Oracle Database ProfessionalsIntroduction to Machine Learning for Oracle Database Professionals
Introduction to Machine Learning for Oracle Database ProfessionalsAlex Gorbachev
 
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...Edureka!
 
Fast federated SQL with Apache Calcite
Fast federated SQL with Apache CalciteFast federated SQL with Apache Calcite
Fast federated SQL with Apache CalciteChris Baynes
 
Facet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLFacet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLLeigh Dodds
 
EAD3 Progress Report 2014-08-13
EAD3 Progress Report 2014-08-13EAD3 Progress Report 2014-08-13
EAD3 Progress Report 2014-08-13Michael Rush
 
SQL for NoSQL and how Apache Calcite can help
SQL for NoSQL and how  Apache Calcite can helpSQL for NoSQL and how  Apache Calcite can help
SQL for NoSQL and how Apache Calcite can helpChristian Tzolov
 
Hadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-Designer
Hadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-DesignerHadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-Designer
Hadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-DesignerSrikanth Sundarrajan
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchRafał Kuć
 
Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501Tjarda Peelen
 
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...Databricks
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache SparkVincent Poncet
 
RESTful Web Service using Swagger
RESTful Web Service using SwaggerRESTful Web Service using Swagger
RESTful Web Service using SwaggerHong-Jhih Lin
 
Search api d8
Search api d8Search api d8
Search api d8Dropsolid
 

What's hot (20)

Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
Spark SQL Tutorial | Spark SQL Using Scala | Apache Spark Tutorial For Beginn...
 
Synthetic models
Synthetic modelsSynthetic models
Synthetic models
 
Apache Spark in Industry
Apache Spark in IndustryApache Spark in Industry
Apache Spark in Industry
 
Introduction to Spark SQL training workshop
Introduction to Spark SQL training workshopIntroduction to Spark SQL training workshop
Introduction to Spark SQL training workshop
 
Spark from the Surface
Spark from the SurfaceSpark from the Surface
Spark from the Surface
 
New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1New Persistence Features in Spring Roo 1.1
New Persistence Features in Spring Roo 1.1
 
Introduction to real time big data with Apache Spark
Introduction to real time big data with Apache SparkIntroduction to real time big data with Apache Spark
Introduction to real time big data with Apache Spark
 
Introduction to Machine Learning for Oracle Database Professionals
Introduction to Machine Learning for Oracle Database ProfessionalsIntroduction to Machine Learning for Oracle Database Professionals
Introduction to Machine Learning for Oracle Database Professionals
 
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
 
Fast federated SQL with Apache Calcite
Fast federated SQL with Apache CalciteFast federated SQL with Apache Calcite
Fast federated SQL with Apache Calcite
 
Facet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLFacet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQL
 
EAD3 Progress Report 2014-08-13
EAD3 Progress Report 2014-08-13EAD3 Progress Report 2014-08-13
EAD3 Progress Report 2014-08-13
 
SQL for NoSQL and how Apache Calcite can help
SQL for NoSQL and how  Apache Calcite can helpSQL for NoSQL and how  Apache Calcite can help
SQL for NoSQL and how Apache Calcite can help
 
Hadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-Designer
Hadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-DesignerHadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-Designer
Hadoop-Summit-2014-Apache-Falcon-Hadoop-First-ETL-Pipeline-Designer
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearch
 
Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501
 
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
RESTful Web Service using Swagger
RESTful Web Service using SwaggerRESTful Web Service using Swagger
RESTful Web Service using Swagger
 
Search api d8
Search api d8Search api d8
Search api d8
 

Similar to OData/SPARQL Interop

Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Stephan Klevenz
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service BIOVIA
 
OData support in Cast Iron 7.5.1
OData support in Cast Iron 7.5.1OData support in Cast Iron 7.5.1
OData support in Cast Iron 7.5.1Sarath Ambadas
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25Jon Petter Hjulstad
 
WOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of ThingsWOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of ThingsAndreas Kamilaris
 
Hypermedia for Machine APIs
Hypermedia for Machine APIsHypermedia for Machine APIs
Hypermedia for Machine APIsMichael Koster
 
Oracle REST Data Services: Options for your Web Services
Oracle REST Data Services: Options for your Web ServicesOracle REST Data Services: Options for your Web Services
Oracle REST Data Services: Options for your Web ServicesJeff Smith
 
Restful webservice
Restful webserviceRestful webservice
Restful webserviceDong Ngoc
 
JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesLudovic Champenois
 
OData and SharePoint
OData and SharePointOData and SharePoint
OData and SharePointSanjay Patel
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIGert Drapers
 
Ubicity pure tosca orchestration 2021-04-28
Ubicity pure tosca orchestration 2021-04-28Ubicity pure tosca orchestration 2021-04-28
Ubicity pure tosca orchestration 2021-04-28Chris Lauwers
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellGeoff Varosky
 
DEVNET-1106 Upcoming Services in OpenStack
DEVNET-1106	Upcoming Services in OpenStackDEVNET-1106	Upcoming Services in OpenStack
DEVNET-1106 Upcoming Services in OpenStackCisco DevNet
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_kIBM
 

Similar to OData/SPARQL Interop (20)

Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014Apache Olingo - ApacheCon Denver 2014
Apache Olingo - ApacheCon Denver 2014
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
Kantara OTTO slides
Kantara OTTO slidesKantara OTTO slides
Kantara OTTO slides
 
OData support in Cast Iron 7.5.1
OData support in Cast Iron 7.5.1OData support in Cast Iron 7.5.1
OData support in Cast Iron 7.5.1
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25
 
40020
4002040020
40020
 
40020
4002040020
40020
 
WOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of ThingsWOTS2E: A Search Engine for a Semantic Web of Things
WOTS2E: A Search Engine for a Semantic Web of Things
 
Hypermedia for Machine APIs
Hypermedia for Machine APIsHypermedia for Machine APIs
Hypermedia for Machine APIs
 
Oracle REST Data Services: Options for your Web Services
Oracle REST Data Services: Options for your Web ServicesOracle REST Data Services: Options for your Web Services
Oracle REST Data Services: Options for your Web Services
 
Restful webservice
Restful webserviceRestful webservice
Restful webservice
 
scalaphx-akka-http
scalaphx-akka-httpscalaphx-akka-http
scalaphx-akka-http
 
JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul services
 
OData Services
OData ServicesOData Services
OData Services
 
OData and SharePoint
OData and SharePointOData and SharePoint
OData and SharePoint
 
Building RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPIBuilding RESTfull Data Services with WebAPI
Building RESTfull Data Services with WebAPI
 
Ubicity pure tosca orchestration 2021-04-28
Ubicity pure tosca orchestration 2021-04-28Ubicity pure tosca orchestration 2021-04-28
Ubicity pure tosca orchestration 2021-04-28
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
 
DEVNET-1106 Upcoming Services in OpenStack
DEVNET-1106	Upcoming Services in OpenStackDEVNET-1106	Upcoming Services in OpenStack
DEVNET-1106 Upcoming Services in OpenStack
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

OData/SPARQL Interop

  • 1. OData / SPARQL Interop Kal Ahmed (@kal_ahmed) Graham Moore (@gra_moore)
  • 2. Agenda • Quick Overview of OData • Motivation • Implementation • Questions
  • 3. OData “OData is a standardized protocol for creating and consuming data APIs” odata.org
  • 4. Entity-Centric • Collection of Entity Sets • Service metadata – List of entity sets – Schema for entities • Primary Keys • Properties & Associations • Results are returned as entities by default
  • 5. URL-based access http://example.org/Films http://example.org/Films(1234) http://example.org/Films?$filter=Runtime lt 120 http://example.org/Films(1234)/Director http://example.org/Films(1234)?$expand=Director,Actor
  • 6. RESTful Update • POST to entity set‟s URL • PUT, PATCH, MERGE or DELETE to the edit URL of an existing entity • Associations can also be exposed as a collection of link resources.
  • 7. Other Features • Media entities – Combine metadata properties with a special media source URL. • Named Streams – Entity properties of type Edm.Stream – Represented in the entity as a URL • Custom Actions and Functions – Entity set or entity-specific operations exposed as URLs
  • 8. Reasons to Like OData • Schema discovery • Client tooling support (esp for .NET) • Easy to experiment • Easy to use from JavaScript • Growing set of OData consumers – Data browsers – GUI controls – Applications
  • 9. Criticisms of OData • Services tend to be siloes • No shared ontologies • Perceived as a vendor-specific protocol
  • 10. ODATA / SPARQL INTEROP
  • 11. Motivation • We like the features of OData • We like the flexibility of RDF / SPARQL • Goals: – Read access to open SPARQL endpoints via OData – Declarative configuration – Automatic configuration via RDF schema / SPARQL introspection
  • 12. Previous Attempt • LINQ – to – SPARQL – Hand-crafted model as annotated C# interfaces – Generated implementation classes – OData -> LINQ -> SPARQL and all the way back – Worked, but it was clunky
  • 13. Implementation • Proxy service for a SPARQL endpoint – OData service description derived from the schema of the SPARQL endpoint – OData request converted to a SPARQL query – SPARQL response converted to OData response – Stateless – Configured by an annotated OData schema document http://github.com/brightstardb/odata-sparql
  • 14. Annotating OData Services • Annotations are part of the OData spec. • We define annotations for: – URI namespace for entity primary keys – URIs for entity types, properties and associations – Direction of associations • Annotations are made to the published schema • Allows consumer to reconstruct the source triples
  • 15. Implementation Issues • DESCRIBE is not an option • CONSTRUCTed graphs – Sorting – Identifying the entity resources • Server-controlled paging for OData • Paging requires sub-queries • Entities require a common identifier prefix
  • 16. Select a Single Film OData /Films(„Un_Chien_Andalou‟) SPARQL CONSTRUCT { res:Un_Chien_Andalou ?p ?o . } WHERE { res:Un_Chien_Andalou ?p ?o . }
  • 17. Enumerate Films OData /Films SPARQL CONSTRUCT { ?v1 ?v1_p ?v1_o. ?v1 ods:variable-binding “v1” } WHERE { ?v1 ?v1_p ?v1_o . { SELECT { ?v1 rdf:type o:Film . } LIMIT 100 } }
  • 18. Property Navigation OData /Films(„Un_Chien_Andalou‟)/Director SPARQL CONSTRUCT { ?v1 ?v1_p ?v1_o . ?v1 ods:variable-binding “v1” . } WHERE { ?v1 ?v1_p ?v1_o . SELECT { ?v1 WHERE { res:Un_Chien_Andalou p:director ?v1 . } LIMIT 100 }
  • 19. Questions • In discussing Open Data what is the perceived importance of standards interoperability ? • If it is important, where does the responsibility for interoperability lie ?
  • 20. More Questions • What could W3C Linked Data Platform learn from OData and vice-versa ? • Should these efforts be sharing use-cases ?
  • 21. Final Question • Is there a meta-model for an entity- oriented view of data resources ? One that both OData and LDP could share.

Editor's Notes

  1. Oxford-based software technology company developing products focussed on helping organisations to better manage the complex relationships between conceptual models such as business processes and domain knowledge and documents, data and other information that people use on a day-to-day basis.Developed out of working on the ISO standard for structured information exchange – Topic Maps.