SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Graphql presentation
Graphql presentationGraphql presentation
Graphql presentationVibhor Grover
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)Bishoy Demian
 
SPARQL 사용법
SPARQL 사용법SPARQL 사용법
SPARQL 사용법홍수 허
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesBobby Curtis
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
Architecting Modern Data Platforms
Architecting Modern Data PlatformsArchitecting Modern Data Platforms
Architecting Modern Data PlatformsAnkit Rathi
 
API Management Reference Architecture
API Management Reference ArchitectureAPI Management Reference Architecture
API Management Reference ArchitectureSeong-Bok Lee
 
What is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaWhat is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
 
Introduction to Hibernate Framework
Introduction to Hibernate FrameworkIntroduction to Hibernate Framework
Introduction to Hibernate FrameworkMohit Kanwar
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL StackSashko Stubailo
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 
Oak, the Architecture of the new Repository
Oak, the Architecture of the new RepositoryOak, the Architecture of the new Repository
Oak, the Architecture of the new RepositoryMichael Dürig
 
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise NecessityApache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise NecessityWes McKinney
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDatabricks
 
Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mark Kromer
 
POO con PHP
POO con PHPPOO con PHP
POO con PHPvinceq
 
Unit Test Your Database
Unit Test Your DatabaseUnit Test Your Database
Unit Test Your DatabaseDavid Wheeler
 

Was ist angesagt? (20)

Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
 
API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)API as-a-Product with Azure API Management (APIM)
API as-a-Product with Azure API Management (APIM)
 
Attacking REST API
Attacking REST APIAttacking REST API
Attacking REST API
 
SPARQL 사용법
SPARQL 사용법SPARQL 사용법
SPARQL 사용법
 
Oracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best PracticesOracle GoldenGate 21c New Features and Best Practices
Oracle GoldenGate 21c New Features and Best Practices
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
Architecting Modern Data Platforms
Architecting Modern Data PlatformsArchitecting Modern Data Platforms
Architecting Modern Data Platforms
 
API Management Reference Architecture
API Management Reference ArchitectureAPI Management Reference Architecture
API Management Reference Architecture
 
What is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaWhat is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | Edureka
 
Introduction to Hibernate Framework
Introduction to Hibernate FrameworkIntroduction to Hibernate Framework
Introduction to Hibernate Framework
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
 
Jena Programming
Jena ProgrammingJena Programming
Jena Programming
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
Oak, the Architecture of the new Repository
Oak, the Architecture of the new RepositoryOak, the Architecture of the new Repository
Oak, the Architecture of the new Repository
 
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise NecessityApache Arrow: Open Source Standard Becomes an Enterprise Necessity
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache Spark
 
Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021Mapping Data Flows Training April 2021
Mapping Data Flows Training April 2021
 
Api types
Api typesApi types
Api types
 
POO con PHP
POO con PHPPOO con PHP
POO con PHP
 
Unit Test Your Database
Unit Test Your DatabaseUnit Test Your Database
Unit Test Your Database
 

Ähnlich wie 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.
 
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
 
Sparql a simple knowledge query
Sparql  a simple knowledge querySparql  a simple knowledge query
Sparql a simple knowledge queryStanley Wang
 

Ähnlich wie 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
 
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
 
Sparql a simple knowledge query
Sparql  a simple knowledge querySparql  a simple knowledge query
Sparql a simple knowledge query
 

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