SlideShare une entreprise Scribd logo
1  sur  6
SPIN in Five Slideshttp://spinrdf.org Holger Knublauch, TopQuadrant Inc. holger@topquadrant.com Example file: http://topbraid.org/examples/spinsquare.ttl Open Source API: http://topbraid.org/spin/api/
SPIN is an RDF Syntax for SPARQL SPIN provides a vocabulary to represent SPARQL queries as RDF triples. Benefits Stores SPARQL queries together with model Easy to share on the semantic web Referential integrity (true resource references) Namespaces are managed once, not for every query # Width and height must be equal ASKWHERE {     ?thisss:width ?width .     ?thisss:height ?height .     FILTER (?width != ?height) . } [ a       sp:Ask ;                 rdfs:comment "Width and height must be equal"^^xsd:string ;                 sp:where ([ sp:object _:b1 ;                             sp:predicatess:width ;                             sp:subjectspin:_this                           ] [ sp:object _:b2 ;                             sp:predicatess:height ;                             sp:subjectspin:_this                           ] [ a       sp:Filter ;                             sp:expression [ a sp:ne ; sp:arg1 _:b1 ; sp:arg2 _:b2                                     ]                           ])               ] .
SPIN is a SPARQL Constraint Language The property spin:constraint can be used to link a class with SPARQL queries that formalize invariants for the members of that class. Benefits Natural object-oriented way of modeling SPARQL is very expressive  Constraints can be natively executed by SPARQL engines of the database Easy to combine with other SPARQL constraint bases like SKOS SPIN
SPIN is a SPARQL Rules Language The property spin:rulecan be used to link a class with SPARQL CONSTRUCT queries that define inference rules for the members of the class Benefits Natural object-oriented way of modeling SPARQL is very expressive  Rules can be natively executed by SPARQL engines of the database Easy to combine with other SPARQL rule bases like OWL RL
SPIN can define SPARQL Functions spin:Function can be used to define new SPARQL functions that use other SPARQL queries as their bodies. Benefits Can be used to modularize and extend SPARQL Fully declarative and web friendly: functions are stored in RDF Greatly extend the expressivity of SPARQL (recursion etc) Simple form of backward chaining, computing sub-queries on demand CONSTRUCT{     ?thisss:area ?area . } WHERE {     LET (?area := ss:computeArea(?this)) . }
SPIN can store reusable SPARQL queries spin:Templatecan be used to wrap SPARQL queries into reusable building blocks so that they can be instantiated with arguments Benefits Supports object-oriented reuse of modeling patterns Defines domain-specific languages Easy to fill in the blanks by people with no SPARQL expertise

Contenu connexe

Tendances

Graphql presentation
Graphql presentationGraphql presentation
Graphql presentationVibhor Grover
 
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...Databricks
 
ES6 presentation
ES6 presentationES6 presentation
ES6 presentationritika1
 
Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfClaus Ibsen
 
JSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social WebJSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social WebGregg Kellogg
 
Building Modern APIs with GraphQL
Building Modern APIs with GraphQLBuilding Modern APIs with GraphQL
Building Modern APIs with GraphQLAmazon Web Services
 
Introducing Swagger
Introducing SwaggerIntroducing Swagger
Introducing SwaggerTony Tam
 
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!
 
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...Edureka!
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Matt Raible
 
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Edureka!
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentationManav Prasad
 
JSON-LD, Schema.org, and Structured data
JSON-LD, Schema.org, and Structured dataJSON-LD, Schema.org, and Structured data
JSON-LD, Schema.org, and Structured dataSante J. Achille
 
Wroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in JavaWroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in JavaMarcinStachniuk
 
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 StructuresMarkus Lanthaler
 
Testing Spring Boot Applications
Testing Spring Boot ApplicationsTesting Spring Boot Applications
Testing Spring Boot ApplicationsVMware Tanzu
 

Tendances (20)

Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
 
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
 
ES6 presentation
ES6 presentationES6 presentation
ES6 presentation
 
Low Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdfLow Code Integration with Apache Camel.pdf
Low Code Integration with Apache Camel.pdf
 
JSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social WebJSON-LD: JSON for the Social Web
JSON-LD: JSON for the Social Web
 
Spark
SparkSpark
Spark
 
Building Modern APIs with GraphQL
Building Modern APIs with GraphQLBuilding Modern APIs with GraphQL
Building Modern APIs with GraphQL
 
Introducing Swagger
Introducing SwaggerIntroducing Swagger
Introducing Swagger
 
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...
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
PySpark Programming | PySpark Concepts with Hands-On | PySpark Training | Edu...
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
 
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
Django Rest Framework | How to Create a RESTful API Using Django | Django Tut...
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Introduction to Django Rest Framework
Introduction to Django Rest FrameworkIntroduction to Django Rest Framework
Introduction to Django Rest Framework
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
JSON-LD, Schema.org, and Structured data
JSON-LD, Schema.org, and Structured dataJSON-LD, Schema.org, and Structured data
JSON-LD, Schema.org, and Structured data
 
Wroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in JavaWroclaw GraphQL - GraphQL in Java
Wroclaw GraphQL - GraphQL in Java
 
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
 
Testing Spring Boot Applications
Testing Spring Boot ApplicationsTesting Spring Boot Applications
Testing Spring Boot Applications
 

Similaire à SPIN in Five Slides

A hands on overview of the semantic web
A hands on overview of the semantic webA hands on overview of the semantic web
A hands on overview of the semantic webMarakana Inc.
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeAdriel Café
 
What;s Coming In SPARQL2?
What;s Coming In SPARQL2?What;s Coming In SPARQL2?
What;s Coming In SPARQL2?LeeFeigenbaum
 
SPARQL and SQL: technical aspects and synergy
SPARQL and SQL: technical aspects and synergySPARQL and SQL: technical aspects and synergy
SPARQL and SQL: technical aspects and synergyYannis Kalfoglou
 
Querying the Semantic Web with SPARQL
Querying the Semantic Web with SPARQLQuerying the Semantic Web with SPARQL
Querying the Semantic Web with SPARQLEmanuele Della Valle
 
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
 
A Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic WebA Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic WebShamod Lacoul
 
SHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudSHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudRichard Cyganiak
 
Semantic web for ontology chapter4 bynk
Semantic web for ontology chapter4 bynkSemantic web for ontology chapter4 bynk
Semantic web for ontology chapter4 bynkNamgee Lee
 
SPARQL in the Semantic Web
SPARQL in the Semantic WebSPARQL in the Semantic Web
SPARQL in the Semantic WebJan Beeck
 
Sparql semantic information retrieval by
Sparql semantic information retrieval bySparql semantic information retrieval by
Sparql semantic information retrieval byIJNSA Journal
 
Sparql service-description
Sparql service-descriptionSparql service-description
Sparql service-descriptionSTIinnsbruck
 
SPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONS
SPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONSSPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONS
SPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONSIJNSA Journal
 
Re-using Media on the Web: Media fragment re-mixing and playout
Re-using Media on the Web: Media fragment re-mixing and playoutRe-using Media on the Web: Media fragment re-mixing and playout
Re-using Media on the Web: Media fragment re-mixing and playoutMediaMixerCommunity
 

Similaire à SPIN in Five Slides (20)

SPIN and Shapes
SPIN and ShapesSPIN and Shapes
SPIN and Shapes
 
A hands on overview of the semantic web
A hands on overview of the semantic webA hands on overview of the semantic web
A hands on overview of the semantic web
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & Practice
 
What;s Coming In SPARQL2?
What;s Coming In SPARQL2?What;s Coming In SPARQL2?
What;s Coming In SPARQL2?
 
SPARQL and SQL: technical aspects and synergy
SPARQL and SQL: technical aspects and synergySPARQL and SQL: technical aspects and synergy
SPARQL and SQL: technical aspects and synergy
 
eureka09
eureka09eureka09
eureka09
 
eureka09
eureka09eureka09
eureka09
 
Querying the Semantic Web with SPARQL
Querying the Semantic Web with SPARQLQuerying the Semantic Web with SPARQL
Querying the Semantic Web with SPARQL
 
Web Spa
Web SpaWeb Spa
Web Spa
 
Solr 8 interview
Solr 8 interview Solr 8 interview
Solr 8 interview
 
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...
 
A Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic WebA Hands On Overview Of The Semantic Web
A Hands On Overview Of The Semantic Web
 
SHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudSHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data Mud
 
Semantic web for ontology chapter4 bynk
Semantic web for ontology chapter4 bynkSemantic web for ontology chapter4 bynk
Semantic web for ontology chapter4 bynk
 
SPARQL in the Semantic Web
SPARQL in the Semantic WebSPARQL in the Semantic Web
SPARQL in the Semantic Web
 
Sparql semantic information retrieval by
Sparql semantic information retrieval bySparql semantic information retrieval by
Sparql semantic information retrieval by
 
Sparql service-description
Sparql service-descriptionSparql service-description
Sparql service-description
 
SPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONS
SPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONSSPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONS
SPARQL: SEMANTIC INFORMATION RETRIEVAL BY EMBEDDING PREPOSITIONS
 
SPARQL 1.1 Status
SPARQL 1.1 StatusSPARQL 1.1 Status
SPARQL 1.1 Status
 
Re-using Media on the Web: Media fragment re-mixing and playout
Re-using Media on the Web: Media fragment re-mixing and playoutRe-using Media on the Web: Media fragment re-mixing and playout
Re-using Media on the Web: Media fragment re-mixing and playout
 

SPIN in Five Slides

  • 1. SPIN in Five Slideshttp://spinrdf.org Holger Knublauch, TopQuadrant Inc. holger@topquadrant.com Example file: http://topbraid.org/examples/spinsquare.ttl Open Source API: http://topbraid.org/spin/api/
  • 2. SPIN is an RDF Syntax for SPARQL SPIN provides a vocabulary to represent SPARQL queries as RDF triples. Benefits Stores SPARQL queries together with model Easy to share on the semantic web Referential integrity (true resource references) Namespaces are managed once, not for every query # Width and height must be equal ASKWHERE {     ?thisss:width ?width .     ?thisss:height ?height .     FILTER (?width != ?height) . } [ a       sp:Ask ;                 rdfs:comment "Width and height must be equal"^^xsd:string ;                 sp:where ([ sp:object _:b1 ;                             sp:predicatess:width ;                             sp:subjectspin:_this                           ] [ sp:object _:b2 ;                             sp:predicatess:height ;                             sp:subjectspin:_this                           ] [ a       sp:Filter ;                             sp:expression [ a sp:ne ; sp:arg1 _:b1 ; sp:arg2 _:b2                                     ]                           ])               ] .
  • 3. SPIN is a SPARQL Constraint Language The property spin:constraint can be used to link a class with SPARQL queries that formalize invariants for the members of that class. Benefits Natural object-oriented way of modeling SPARQL is very expressive  Constraints can be natively executed by SPARQL engines of the database Easy to combine with other SPARQL constraint bases like SKOS SPIN
  • 4. SPIN is a SPARQL Rules Language The property spin:rulecan be used to link a class with SPARQL CONSTRUCT queries that define inference rules for the members of the class Benefits Natural object-oriented way of modeling SPARQL is very expressive  Rules can be natively executed by SPARQL engines of the database Easy to combine with other SPARQL rule bases like OWL RL
  • 5. SPIN can define SPARQL Functions spin:Function can be used to define new SPARQL functions that use other SPARQL queries as their bodies. Benefits Can be used to modularize and extend SPARQL Fully declarative and web friendly: functions are stored in RDF Greatly extend the expressivity of SPARQL (recursion etc) Simple form of backward chaining, computing sub-queries on demand CONSTRUCT{     ?thisss:area ?area . } WHERE {     LET (?area := ss:computeArea(?this)) . }
  • 6. SPIN can store reusable SPARQL queries spin:Templatecan be used to wrap SPARQL queries into reusable building blocks so that they can be instantiated with arguments Benefits Supports object-oriented reuse of modeling patterns Defines domain-specific languages Easy to fill in the blanks by people with no SPARQL expertise