This document discusses approaches for mapping relational databases to RDF, including direct mapping and R2RML. Direct mapping defines an RDF representation of the data and schema in a relational database. R2RML allows for customized mappings from relational databases to RDF datasets using RDF graphs and Turtle syntax. Examples are provided to illustrate mapping relational data and schemas to RDF using both approaches. Mappings can then be used to access the resulting RDF data in different ways.
RDF is a general method to decompose knowledge into small pieces, with some rules about the semantics or meaning of those pieces. The point is to have a method so simple that it can express any fact, and yet so structured that computer applications can do useful things with knowledge expressed in RDF.
"SPARQL Cheat Sheet" is a short collection of slides intended to act as a guide to SPARQL developers. It includes the syntax and structure of SPARQL queries, common SPARQL prefixes and functions, and help with RDF datasets.
The "SPARQL Cheat Sheet" is intended to accompany the SPARQL By Example slides available at http://www.cambridgesemantics.com/2008/09/sparql-by-example/ .
This document provides an overview of the RDF data model. It discusses the history and development of RDF standards from 1997 to 2014. It explains that an RDF graph is made up of triples consisting of a subject, predicate, and object. It provides examples of RDF triples and their N-triples representation. It also describes RDF syntaxes like Turtle and features of RDF like literals, blank nodes, and language-tagged strings.
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOChris Mungall
NOTE THAT I HAVE MOVED AWAY FROM SLIDESHARE TO ZENODO
The identical presentation is now here:
https://doi.org/10.5281/zenodo.7778641
General introduction to LinkML, The Linked Data Modeling Language.
Adapter from presentation given to NIH May 2022
https://linkml.io/linkml
The document discusses the RDF data model. The key points are:
1. RDF represents data as a graph of triples consisting of a subject, predicate, and object. Triples can be combined to form an RDF graph.
2. The RDF data model has three types of nodes - URIs to identify resources, blank nodes to represent anonymous resources, and literals for values like text strings.
3. RDF graphs can be merged to integrate data from multiple sources in an automatic way due to RDF's compositional nature.
Knowledge graphs - it’s what all businesses now are on the lookout for. But what exactly is a knowledge graph and, more importantly, how do you get one? Do you get it as an out-of-the-box solution or do you have to build it (or have someone else build it for you)? With the help of our knowledge graph technology experts, we have created a step-by-step list of how to build a knowledge graph. It will properly expose and enforce the semantics of the semantic data model via inference, consistency checking and validation and thus offer organizations many more opportunities to transform and interlink data into coherent knowledge.
A tutorial on how to create mappings using ontop, how inference (OWL 2 QL and RDFS) plays a role answering SPARQL queries in ontop, and how ontop's support for on-the-fly SQL query translation enables scenarios of semantic data access and data integration.
RDA: Basics, concepts and challenges facing the Arabic cataloging Library Experts
The book Tahdhib al-Tahdhib is a book about the science of men of hadith. It was authored by Ibn Hajar al-Asqalani. It is a summary of the large book Al-Kamal fi Asma' al-Rijal by al-Mizzi. Ibn Hajar further summarized and added to Al-Mizzi's work, calling his summary Tahdhib al-Tahdhib. The works of Al-Mugdasi, Al-Mizzi and Ibn Hajar are all related and form a hierarchy with Tahdhib al-Tahdhib being a summary of earlier works on
The Semantic Web #9 - Web Ontology Language (OWL)Myungjin Lee
This is a lecture note #9 for my class of Graduate School of Yonsei University, Korea.
It describes Web Ontology Language (OWL) for authoring ontologies.
Semantic Web technologies (such as RDF and SPARQL) excel at bringing together diverse data in a world of independent data publishers and consumers. Common ontologies help to arrive at a shared understanding of the intended meaning of data.
However, they don’t address one critically important issue: What does it mean for data to be complete and/or valid? Semantic knowledge graphs without a shared notion of completeness and validity quickly turn into a Big Ball of Data Mud.
The Shapes Constraint Language (SHACL), an upcoming W3C standard, promises to help solve this problem. By keeping semantics separate from validity, SHACL makes it possible to resolve a slew of data quality and data exchange issues.
Presented at the Lotico Berlin Semantic Web Meetup.
SPARQL introduction and training (130+ slides with exercices)Thomas Francart
Full SPARQL training
Covers all SPARQL : basic graph patterns, FILTERs, functions, property paths, optional, negation, assignation, aggregation, subqueries, federated queries.
Does not cover except SPARQL updates.
Includes exercices on DBPedia.
CC BY license
The presentation talks about the components of FHIR, its distribution and use. Scenarios for the introduction of FHIR in the country using HL7 V3 are also offered.
Although RDF is a corner stone of semantic web and knowledge graphs, it has not been embraced by everyday programmers and software architects who need to safely create and access well-structured data. There is a lack of common tools and methodologies that are available in more conventional settings to improve data quality by defining schemas that can later be validated. Two technologies have recently been proposed for RDF validation: Shape Expressions (ShEx) and Shapes Constraint Language (SHACL). In the talk, we will review the history and motivation of both technologies. We will also and enumerate some challenges and future work with regards to RDF validation.
This document provides an introduction to linked data and open data. It discusses the evolution of the web from documents to interconnected data. The four principles of linked data are explained: using URIs to identify things, making URIs accessible, providing useful information about the URI, and including links to other URIs. The differences between open data and linked data are outlined. Key milestones in linked government data are presented. Formats for publishing linked data like RDF and SPARQL are introduced. Finally, the 5 star scheme for publishing open data as linked data is described.
This document provides an introduction and examples for SHACL (Shapes Constraint Language), a W3C recommendation for validating RDF graphs. It defines key SHACL concepts like shapes, targets, and constraint components. An example shape validates nodes with a schema:name and schema:email property. Constraints like minCount, maxCount, datatype, nodeKind, and logical operators like and/or are demonstrated. The document is an informative tutorial for learning SHACL through examples.
The document provides an overview of knowledge graphs and the metaphactory knowledge graph platform. It defines knowledge graphs as semantic descriptions of entities and relationships using formal knowledge representation languages like RDF, RDFS and OWL. It discusses how knowledge graphs can power intelligent applications and gives examples like Google Knowledge Graph, Wikidata, and knowledge graphs in cultural heritage and life sciences. It also provides an introduction to key standards like SKOS, SPARQL, and Linked Data principles. Finally, it describes the main features and architecture of the metaphactory platform for creating and utilizing enterprise knowledge graphs.
This document discusses mapping data from relational databases to RDF. It provides an overview of the direct mapping approach and the R2RML standard for customizable mapping. Direct mapping generates URIs and RDF triples automatically based on the relational schema. R2RML allows customizing the mapping through a mapping language. The document also covers ETL systems for extracting relational data and loading it into triplestores as RDF, as well as use cases involving mapping biological and music databases to Linked Data.
Complex hierarchical relationships between entities can only be mapped with difficulty in a relational database and demanding queries are usually quite slow.
Graph databases are optimized for exactly these kinds of relationships and can provide high-performance results even with huge amounts of data. Moreover, not only the entities that are stored in the database, have attributes, but also their relationships. Queries can look at entities as well as their relationships.
Get to know the basics of graph databases, using Neo4j as an example, and see how it is used C# projects.
- SPARQL is a query language for retrieving and manipulating data stored in RDF format. It is similar to SQL but for RDF data.
- SPARQL queries contain prefix declarations, specify a dataset using FROM, and include a graph pattern in the WHERE clause to match triples.
- The main types of SPARQL queries are SELECT, ASK, DESCRIBE, and CONSTRUCT. SELECT returns variable bindings, ASK returns a boolean, DESCRIBE returns a description of a resource, and CONSTRUCT generates an RDF graph.
Introduction to DBpedia, the most popular and interconnected source of Linked Open Data. Part of EXPLORING WIKIDATA AND THE SEMANTIC WEB FOR LIBRARIES at METRO http://metro.org/events/598/
RDFS provides primitives for defining lightweight schemas for RDF triples. It allows defining classes of resources and relations between resources, and organizing their hierarchies. RDFS defines domains and ranges for relations, and provides semantics and inference rules for reasoning about subclasses, subproperties, and types of resources.
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...HostedbyConfluent
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Ethan Guo | Current 2022
Back in 2016, Apache Hudi brought transactions, change capture on top of data lakes, what is today referred to as the Lakehouse architecture. In this session, we first introduce Apache Hudi and the key technology gaps it fills in the modern data architecture. Bridging traditional data lakes and warehouses, Hudi helps realize the Lakehouse vision, by bringing transactions, optimized table metadata to data lakes and powerful storage layout optimizations, moving them closer to cloud warehouses of today. Viewed from a data engineering lens, Hudi also plays a key unifying role between the batch and stream processing worlds, by acting as a columnar, server-less ""state store"" for batch jobs, ushering in what we call the incremental processing model, where batch jobs can consume new data, update/delete intermediate results in a Hudi table, instead of re-computing/re-write entire output like old-school big batch jobs.
Rest of talk focusses on a deep dive into the some of the time-tested design choices and tradeoffs in Hudi, that helps power some of the largest transactional data lakes on the planet today. We will start by describing a tour of the storage format design, including data, metadata layouts and of course Hudi's timeline, an event log that is central to implementing ACID transactions and concurrency control. We will delve deeper into the practical concurrency control pitfalls in data lakes, and show how Hudi's hybrid approach combining MVCC with optimistic concurrency control, lowers contention and unlocks minute-level near real-time commits to Hudi tables. We will conclude with code examples that showcase Hudi's rich set of table services that perform vital table management such as cleaning older file versions, compaction of delta logs into base files, dynamic re-clustering for faster query performance, or the more recently introduced indexing service that maintains Hudi's multi-modal indexing capabilities.
Publishing Linked Data 3/5 Semtech2011Juan Sequeda
This document summarizes techniques for publishing linked data on the web. It discusses publishing static RDF files, embedding RDF in HTML using RDFa, linking to other URIs, generating linked data from relational databases using RDB2RDF tools, publishing linked data from triplestores and APIs, hosting linked data in the cloud, and testing linked data quality.
PayPal has seen tremendous growth in recent years, processing over 7.8 billion payments transactions annually for over 227 million active customer accounts across 200+ markets and currencies. To support this scale, PayPal's data infrastructure includes over 2,000 database instances, 116 billion database calls per day, and over 74 petabytes of total storage. PayPal continues enhancing its data infrastructure to meet growing analytics and machine learning needs through technologies like Kafka, Hadoop, graph databases and real-time OLAP engines.
Knowledge graphs - it’s what all businesses now are on the lookout for. But what exactly is a knowledge graph and, more importantly, how do you get one? Do you get it as an out-of-the-box solution or do you have to build it (or have someone else build it for you)? With the help of our knowledge graph technology experts, we have created a step-by-step list of how to build a knowledge graph. It will properly expose and enforce the semantics of the semantic data model via inference, consistency checking and validation and thus offer organizations many more opportunities to transform and interlink data into coherent knowledge.
A tutorial on how to create mappings using ontop, how inference (OWL 2 QL and RDFS) plays a role answering SPARQL queries in ontop, and how ontop's support for on-the-fly SQL query translation enables scenarios of semantic data access and data integration.
RDA: Basics, concepts and challenges facing the Arabic cataloging Library Experts
The book Tahdhib al-Tahdhib is a book about the science of men of hadith. It was authored by Ibn Hajar al-Asqalani. It is a summary of the large book Al-Kamal fi Asma' al-Rijal by al-Mizzi. Ibn Hajar further summarized and added to Al-Mizzi's work, calling his summary Tahdhib al-Tahdhib. The works of Al-Mugdasi, Al-Mizzi and Ibn Hajar are all related and form a hierarchy with Tahdhib al-Tahdhib being a summary of earlier works on
The Semantic Web #9 - Web Ontology Language (OWL)Myungjin Lee
This is a lecture note #9 for my class of Graduate School of Yonsei University, Korea.
It describes Web Ontology Language (OWL) for authoring ontologies.
Semantic Web technologies (such as RDF and SPARQL) excel at bringing together diverse data in a world of independent data publishers and consumers. Common ontologies help to arrive at a shared understanding of the intended meaning of data.
However, they don’t address one critically important issue: What does it mean for data to be complete and/or valid? Semantic knowledge graphs without a shared notion of completeness and validity quickly turn into a Big Ball of Data Mud.
The Shapes Constraint Language (SHACL), an upcoming W3C standard, promises to help solve this problem. By keeping semantics separate from validity, SHACL makes it possible to resolve a slew of data quality and data exchange issues.
Presented at the Lotico Berlin Semantic Web Meetup.
SPARQL introduction and training (130+ slides with exercices)Thomas Francart
Full SPARQL training
Covers all SPARQL : basic graph patterns, FILTERs, functions, property paths, optional, negation, assignation, aggregation, subqueries, federated queries.
Does not cover except SPARQL updates.
Includes exercices on DBPedia.
CC BY license
The presentation talks about the components of FHIR, its distribution and use. Scenarios for the introduction of FHIR in the country using HL7 V3 are also offered.
Although RDF is a corner stone of semantic web and knowledge graphs, it has not been embraced by everyday programmers and software architects who need to safely create and access well-structured data. There is a lack of common tools and methodologies that are available in more conventional settings to improve data quality by defining schemas that can later be validated. Two technologies have recently been proposed for RDF validation: Shape Expressions (ShEx) and Shapes Constraint Language (SHACL). In the talk, we will review the history and motivation of both technologies. We will also and enumerate some challenges and future work with regards to RDF validation.
This document provides an introduction to linked data and open data. It discusses the evolution of the web from documents to interconnected data. The four principles of linked data are explained: using URIs to identify things, making URIs accessible, providing useful information about the URI, and including links to other URIs. The differences between open data and linked data are outlined. Key milestones in linked government data are presented. Formats for publishing linked data like RDF and SPARQL are introduced. Finally, the 5 star scheme for publishing open data as linked data is described.
This document provides an introduction and examples for SHACL (Shapes Constraint Language), a W3C recommendation for validating RDF graphs. It defines key SHACL concepts like shapes, targets, and constraint components. An example shape validates nodes with a schema:name and schema:email property. Constraints like minCount, maxCount, datatype, nodeKind, and logical operators like and/or are demonstrated. The document is an informative tutorial for learning SHACL through examples.
The document provides an overview of knowledge graphs and the metaphactory knowledge graph platform. It defines knowledge graphs as semantic descriptions of entities and relationships using formal knowledge representation languages like RDF, RDFS and OWL. It discusses how knowledge graphs can power intelligent applications and gives examples like Google Knowledge Graph, Wikidata, and knowledge graphs in cultural heritage and life sciences. It also provides an introduction to key standards like SKOS, SPARQL, and Linked Data principles. Finally, it describes the main features and architecture of the metaphactory platform for creating and utilizing enterprise knowledge graphs.
This document discusses mapping data from relational databases to RDF. It provides an overview of the direct mapping approach and the R2RML standard for customizable mapping. Direct mapping generates URIs and RDF triples automatically based on the relational schema. R2RML allows customizing the mapping through a mapping language. The document also covers ETL systems for extracting relational data and loading it into triplestores as RDF, as well as use cases involving mapping biological and music databases to Linked Data.
Complex hierarchical relationships between entities can only be mapped with difficulty in a relational database and demanding queries are usually quite slow.
Graph databases are optimized for exactly these kinds of relationships and can provide high-performance results even with huge amounts of data. Moreover, not only the entities that are stored in the database, have attributes, but also their relationships. Queries can look at entities as well as their relationships.
Get to know the basics of graph databases, using Neo4j as an example, and see how it is used C# projects.
- SPARQL is a query language for retrieving and manipulating data stored in RDF format. It is similar to SQL but for RDF data.
- SPARQL queries contain prefix declarations, specify a dataset using FROM, and include a graph pattern in the WHERE clause to match triples.
- The main types of SPARQL queries are SELECT, ASK, DESCRIBE, and CONSTRUCT. SELECT returns variable bindings, ASK returns a boolean, DESCRIBE returns a description of a resource, and CONSTRUCT generates an RDF graph.
Introduction to DBpedia, the most popular and interconnected source of Linked Open Data. Part of EXPLORING WIKIDATA AND THE SEMANTIC WEB FOR LIBRARIES at METRO http://metro.org/events/598/
RDFS provides primitives for defining lightweight schemas for RDF triples. It allows defining classes of resources and relations between resources, and organizing their hierarchies. RDFS defines domains and ranges for relations, and provides semantics and inference rules for reasoning about subclasses, subproperties, and types of resources.
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...HostedbyConfluent
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Ethan Guo | Current 2022
Back in 2016, Apache Hudi brought transactions, change capture on top of data lakes, what is today referred to as the Lakehouse architecture. In this session, we first introduce Apache Hudi and the key technology gaps it fills in the modern data architecture. Bridging traditional data lakes and warehouses, Hudi helps realize the Lakehouse vision, by bringing transactions, optimized table metadata to data lakes and powerful storage layout optimizations, moving them closer to cloud warehouses of today. Viewed from a data engineering lens, Hudi also plays a key unifying role between the batch and stream processing worlds, by acting as a columnar, server-less ""state store"" for batch jobs, ushering in what we call the incremental processing model, where batch jobs can consume new data, update/delete intermediate results in a Hudi table, instead of re-computing/re-write entire output like old-school big batch jobs.
Rest of talk focusses on a deep dive into the some of the time-tested design choices and tradeoffs in Hudi, that helps power some of the largest transactional data lakes on the planet today. We will start by describing a tour of the storage format design, including data, metadata layouts and of course Hudi's timeline, an event log that is central to implementing ACID transactions and concurrency control. We will delve deeper into the practical concurrency control pitfalls in data lakes, and show how Hudi's hybrid approach combining MVCC with optimistic concurrency control, lowers contention and unlocks minute-level near real-time commits to Hudi tables. We will conclude with code examples that showcase Hudi's rich set of table services that perform vital table management such as cleaning older file versions, compaction of delta logs into base files, dynamic re-clustering for faster query performance, or the more recently introduced indexing service that maintains Hudi's multi-modal indexing capabilities.
Publishing Linked Data 3/5 Semtech2011Juan Sequeda
This document summarizes techniques for publishing linked data on the web. It discusses publishing static RDF files, embedding RDF in HTML using RDFa, linking to other URIs, generating linked data from relational databases using RDB2RDF tools, publishing linked data from triplestores and APIs, hosting linked data in the cloud, and testing linked data quality.
PayPal has seen tremendous growth in recent years, processing over 7.8 billion payments transactions annually for over 227 million active customer accounts across 200+ markets and currencies. To support this scale, PayPal's data infrastructure includes over 2,000 database instances, 116 billion database calls per day, and over 74 petabytes of total storage. PayPal continues enhancing its data infrastructure to meet growing analytics and machine learning needs through technologies like Kafka, Hadoop, graph databases and real-time OLAP engines.
Presentation done* at the 13th International Semantic Web Conference (ISWC) in which we approach a compressed format to represent RDF Data Streams. See the original article at: http://dataweb.infor.uva.es/wp-content/uploads/2014/07/iswc14.pdf
* Presented by Alejandro Llaves (http://www.slideshare.net/allaves)
This presentation looks in detail at SPARQL (SPARQL Protocol and RDF Query Language) and introduces approaches for querying and updating semantic data. It covers the SPARQL algebra, the SPARQL protocol, and provides examples for reasoning over Linked Data. We use examples from the music domain, which can be directly tried out and ran over the MusicBrainz dataset. This includes gaining some familiarity with the RDFS and OWL languages, which allow developers to formulate generic and conceptual knowledge that can be exploited by automatic reasoning services in order to enhance the power of querying.
A Hands On Overview Of The Semantic WebShamod Lacoul
The document provides an overview of the Semantic Web and introduces key concepts such as RDF, RDFS, SPARQL, OWL, and Linked Open Data. It begins with defining what the Semantic Web is, why it is useful, and how it differs from the traditional web by linking data rather than documents. It then covers RDF for representing data, RDFS for defining schemas, and SPARQL for querying RDF data. The document also discusses OWL for building ontologies and Linked Open Data initiatives that have published billions of RDF triples on the web.
Incremental Export of Relational Database Contents into RDF GraphsNikolaos Konstantinou
In addition to tools offering RDF views over databases, a variety of tools exist that allow exporting database contents into RDF graphs; tools proven that in many cases demonstrate better performance than the former. However, in cases when database contents are exported into RDF, it is not always optimal or even necessary to dump the whole database contents every time. In this paper, the problem of incremental generation and storage of the resulting RDF graph is investigated. An implementation of the R2RML standard is used in order to express mappings that associate tuples from the source database to triples in the resulting RDF graph. Next, a methodology is proposed that enables incremental generation and storage of an RDF graph based on a source relational database, and it is evaluated through a set of performance measurements. Finally, a discussion is presented regarding the authors’ most important findings and conclusions.
SPARQL is a standard query language for RDF that has undergone two iterations (1.0 and 1.1) through the W3C process. SPARQL 1.1 includes updates to RDF stores, subqueries, aggregation, property paths, negation, and remote querying. It also defines separate specifications for querying, updating, protocols, graph store protocols, and federated querying. Apache Jena provides implementations of SPARQL 1.1 and tools like Fuseki for deploying SPARQL servers.
The document discusses data discovery, conversion, integration and visualization using RDF. It covers topics like ontologies, vocabularies, data catalogs, converting different data formats to RDF including CSV, XML and relational databases. It also discusses federated SPARQL queries to integrate data from multiple sources and different techniques for visualizing linked data including analyzing relationships, events, and multidimensional data.
MariaDB Platform for hybrid transactional/analytical workloadsMariaDB plc
OpenWorks 2019 Session
In order to provide data-driven customers with more historical data and real-time analytics, MariaDB Platform can be configured for hybrid transactional/analytical workloads by leveraging row storage for current data transactions and columnar storage for historical data and analytics. In this session Shane Johnson, Senior Director of Product Marketing at MariaDB, shows how change-data-capture and query routing, both available out of the box, can be used to bring scalable analytics to customer-facing applications without changing their code – and without depending on a separate data warehouse.
This document provides an overview of querying linked data using SPARQL. It begins with an introduction and motivation for querying linked data. It then covers the basics of SPARQL including its components like prefixes, query forms, and solution modifiers. Several examples are provided demonstrating how to construct ASK, SELECT, and other types of SPARQL queries. The document also discusses SPARQL algebra and updating linked data with SPARQL 1.1.
This document discusses Redis, MongoDB, and Amazon DynamoDB. It begins with an overview of NoSQL databases and the differences between SQL and NoSQL databases. It then covers Redis data types like strings, hashes, lists, sets, sorted sets, and streams. Examples use cases for Redis are also provided like leaderboards, geospatial queries, and message queues. The document also discusses MongoDB design patterns like embedding data, embracing duplication, and relationships. Finally, it provides a high-level overview of DynamoDB concepts like tables, items, attributes, and primary keys.
A hands on overview of the semantic webMarakana Inc.
This document provides an overview of the Semantic Web. It defines the Semantic Web as linking data to data using technologies like RDF, RDFS, OWL and SPARQL. It explains that RDF represents information as subject-predicate-object statements that can be queried using SPARQL. RDFS allows defining schemas and classes for RDF data, while OWL adds more expressiveness for defining complex ontologies. The document outlines popular Semantic Web tools, public ontologies, and companies working in this domain. It positions the Semantic Web as a way to represent and share data universally on the web.
A presentation on Application Architecture for Semantic Web Applications based on chapter 4 of the book Semantic Web for the Working Ontologist by Dean Allemang and Jim Hendler. It focusses on RDF parsing and serialising and RDF stores.
Geo Replicated Databases For Disaster Recovery Using CRDTRedis Labs
This document summarizes Fiserv's use of Redis and conflict-free replicated databases (CRDBs). Fiserv uses Redis for caching, as a primary database, and in cloud infrastructure. They implement CRDBs across data centers in different regions to provide high availability and disaster recovery. The document outlines Fiserv's CRDB infrastructure with clusters in Georgia and Texas, how data flows between the clusters using synchers, and methods for testing the CRDB syncs such as timestamps and network monitoring.
Mapping Relational Databases to Linked DataEUCLID project
The document discusses mapping relational databases to linked data using RDB2RDF standards. It describes a direct mapping that automatically maps relational data to RDF and R2RML, a customizable mapping language. R2RML allows specifying subject maps, predicate-object maps, and logical tables to control how relational data is represented in RDF. The document provides examples of mapping tables, columns, joins, and custom SQL queries to linked data using R2RML.
Sustainable queryable access to Linked DataRuben Verborgh
This document discusses sustainable queryable access to Linked Data through the use of Triple Pattern Fragments (TPF). TPFs provide a low-cost interface that allows clients to query datasets through triple patterns. Intelligent clients can execute SPARQL queries over TPFs by breaking queries into triple patterns and aggregating the results. TPFs also enable federated querying across multiple datasets by treating them uniformly as fragments that can be retrieved. The document demonstrates federated querying over DBpedia, VIAF, and Harvard Library datasets using TPF interfaces.
Practical Cross-Dataset Queries with SPARQL (Introduction)Richard Cyganiak
This document provides an overview of using SPARQL as a query language for querying data across the web of data. It discusses how data from different sources like relational databases, Excel files, XML, JSON, microdata, etc. can be converted to RDF and queried using SPARQL. The tutorial will cover topics like federated querying across local and remote SPARQL endpoints, using SPARQL CONSTRUCT to map schemas, instance matching with Silk, and visualizing SPARQL results. Hands-on sessions will have participants install Jena tools and run queries on sample RDF data and endpoints.
GDG Meets U event - Big data & Wikidata - no lies codelabCAMELIA BOBAN
This document discusses using SPARQL to query RDF data from DBPedia. It provides an overview of key concepts like RDF triples, SPARQL, and Apache Jena framework. It also includes a sample SPARQL query to retrieve cities in Abruzzo, Italy with a population over 50,000. Resources and prefixes for working with DBPedia, Wikidata, and other linked data sets are listed.
This document discusses how AGROVOC, AGRIS, and the CIARD RING leverage RDF vocabularies and technologies to enable data interoperability. It provides examples of how SPARQL queries can be used to retrieve and link related data across these systems, such as querying AGRIS for center descriptions using their RING URIs, or retrieving bibliographic records for a specific AGRIS center from the AGRIS endpoint. The RING is presented as a public SPARQL endpoint containing linked dataset metadata that uses standards like DCAT and SKOS to describe resources and concepts to facilitate machine-to-machine interactions between systems.
Presentation at the EMBL-EBI Industry RDF meetingJohannes Keizer
The document discusses how AGROVOC, AGRIS, and the CIARD RING leverage RDF vocabularies and technologies to improve data interoperability. It provides examples of how AGRIS retrieves information on its centers through SPARQL queries of the RING, and how data in AGRIS is associated with RING URIs for centers to allow retrieving records by center. The RING is an openly accessible RDF store of datasets described using DCAT, accessible via its SPARQL endpoint.
Integrating Semantic Web with the Real World - A Journey between Two Cities ...Juan Sequeda
(The original version of this talk was a Keynote at KCAP2017. This is the final version of the slides after giving this talk 14 times in 2018)
An early vision in Computer Science has been to create intelligent systems capable of reasoning on large amounts of data. Today, this vision can be delivered by integrating Relational Databases with the Semantic Web using the W3C standards: a graph data model (RDF), ontology language (OWL), mapping language (R2RML) and query language (SPARQL). The research community has successfully been showing how intelligent systems can be created with Semantic Web technologies, dubbed now as Knowledge Graphs.
However, where is the mainstream industry adoption? What are the barriers to adoption? Are these engineering and social barriers or are they open scientific problems that need to be addressed?
This talk will chronicle our journey of deploying Semantic Web technologies with real world users to address Business Intelligence and Data Integration needs, describe technical and social obstacles that are present in large organizations, and scientific and engineering challenges that require attention.
Integrating Semantic Web in the Real World: A Journey between Two Cities Juan Sequeda
Keynote at The 9th International Conference on Knowledge Capture (KCAP2017), Austin, Texas, Dec 2017
An early vision in Computer Science has been to create intelligent systems capable of reasoning on large amounts of data. Today, this vision can be delivered by integrating Relational Databases with the Semantic Web using the W3C standards: a graph data model (RDF), ontology language (OWL), mapping language (R2RML) and query language (SPARQL). The research community has successfully been showing how intelligent systems can be created with Semantic Web technologies, dubbed now as Knowledge Graphs.
However, where is the mainstream industry adoption? What are the barriers to adoption? Are these engineering and social barriers or are they open scientific problems that need to be addressed?
This talk will chronicle our journey of deploying Semantic Web technologies with real world users to address Business Intelligence and Data Integration needs, describe technical and social obstacles that are present in large organizations, and scientific challenges that require attention.
Integrating Relational Databases with the Semantic Web: A ReflectionJuan Sequeda
This is a lecture given at the 2017 Reasoning Web Summer School
It has been clear from the beginning that the success of the Semantic Web hinges on integrating the vast amount of data stored in Relational Databases. In 2007, the W3C organized a workshop on RDF Access to Relational Databases. In 2012, two standards were ratified that map relational data to RDF: Direct Mapping and R2RML.
In this lecture, I will reflect on the last 10 years of research results and systems to integrate Relational Databases with the Semantic web. I will provide an answer to the following question: how and to what extent can Relational Databases be integrated with the Semantic Web? I will review how these standards and systems are being used in practice for data integration and discuss open challenges.
Graph Query Languages: update from LDBCJuan Sequeda
The Linked Data Benchmark Council (LDBC) is a non-profit organization dedicated to establishing benchmarks, benchmark practices and benchmark results for graph data management software. The Graph Query Language task force of LDBC is studying query languages for graph data management systems, and specifically those systems storing so-called Property Graph data. The goals of the GraphQL task force are to:
Devise a list of desired features and functionalities of a graph query language.
Evaluate a number of existing languages (i.e. Cypher, Gremlin, PGQL, SPARQL, SQL), and identify possible issues.
Provide a better understanding of the design space and state-of-the-art.
Develop proposals for changes to existing query languages or even a new graph query language.
This query language should cover the needs of the most important use-cases for such systems, such as social network and Business Intelligence workloads.
This talk will present an update of the work accomplished by the LDBC GraphQL task force. We also look for input from the graph community.
Virtualizing Relational Databases as Graphs: a multi-model approachJuan Sequeda
Talk given at Smart Data 2017
Relational Databases are inflexible due to the rigid constraints of the relational data model. If you have new data that doesn’t fit your schema, you will need to alter your schema (add a column or a new table). This is a task that is not always possible. IT departments don't have time, or they won't allow it - just more nulls that can lead to query performance degradation, etc.
A goal of graph databases is to address this problem with their schema-less graph data model. However, many businesses have large investments in commercial RDBMSs and their associated applications and can't expect to move all of their data to a graph database.
In this talk, I will present a multi-model graph/relational architecture solution. Keep your relational data where it is, virtualize it as a graph, and then connect it with additional data stored in a graph database. This way, both graph and relational technologies can seamlessly interact together.
Presentation at Data/Graph Day Texas Conference.
Austin, Texas
January 14, 2017
This talk grew out Juan Sequeda's office hours following the Seattle Graph Meetup. Some of the questions posed were: How do I recognize problem best solved with a graph solution? How do I determine the best type of graph to solve the problem? How do I manage the data where both graph and relational operations will be performed? Juan did such a great job of explaining the options, we asked him to develop his responses into a formal talk.
My Linked Data tutorial presentation that I presented at Semtech 2012.
http://semtechbizsf2012.semanticweb.com/sessionPop.cfm?confid=65&proposalid=4724
WTF is the Semantic Web and Linked DataJuan Sequeda
This document provides an overview of the Semantic Web and Linked Data. It begins by explaining some of the limitations of the current web, which treats all content as unstructured documents rather than structured data. It then introduces the Semantic Web and its data model, RDF, which allows publishing structured data on the web in a standardized way using graph-based representations. This enables linking different data sources on the web, addressing the problem of data silos. The document provides examples of representing bibliographic data about books in RDF and linking it to other datasets, demonstrating how the Semantic Web enables integrating and finding related information on the web.
The document discusses the Semantic Web and linked data. It defines the current web as consisting of documents linked by hyperlinks that are readable by humans but difficult for computers to understand. The Semantic Web aims to publish structured data on the web using common standards like RDF so that data can be linked, queried, and integrated across sources. Key points include:
- The Semantic Web uses RDF to represent data as a graph so that data from different sources can be linked together.
- Linked data follows principles like using URIs to identify things and including links to other related data.
- Query languages like SPARQL allow searching and integrating linked data from multiple sources.
- There are now
Drupal 7 and Semantic Web Hands-on TutorialJuan Sequeda
This document outlines the schedule and details for a seminar on using Drupal 7 for the Semantic Web. The day-long event includes sessions on rich snippets, an introduction to the Semantic Web, and hands-on advanced topics using Semantic Web technologies with Drupal. The schedule also lists times for registration, breaks, lunch, and a happy hour reception. Background is provided on one of the speakers, Stéphane Corlosquet, who has significantly contributed RDF and Semantic Web capabilities to Drupal.
This document provides information and advice about applying for the National Science Foundation Graduate Research Fellowship. It discusses key details of the fellowship such as eligibility requirements, funding amounts, and required application materials. The fellowship is highly competitive, so applicants are advised to spend 20 hours per week preparing their application, which must demonstrate both intellectual merit of the proposed research and its potential broader impacts. Strong letters of recommendation, personal and research statements, and proposing a feasible research plan are essential. Overall, the document offers guidance on crafting a competitive application by being specific, tying different parts together, and focusing on uniqueness.
Linked Data is a set of best practices for publishing data on the Web using standardized data models (RDF) and access methods (HTTP), enabling easier integration of data from different sources compared to proprietary APIs. The Linked Data architecture is open and allows discovery of new data sources at runtime, allowing applications to take advantage of new available data. When publishing Linked Data, considerations include linking to other datasets, and providing provenance, licensing, and access metadata using common vocabularies. Linked Data principles can also be applied within intranets for data integration.
This document discusses various approaches for building applications that consume linked data from multiple datasets on the web. It describes characteristics of linked data applications and generic applications like linked data browsers and search engines. It also covers domain-specific applications, faceted browsers, SPARQL endpoints, and techniques for accessing and querying linked data including follow-up queries, querying local caches, crawling data, federated query processing, and on-the-fly dereferencing of URIs. The advantages and disadvantages of each technique are discussed.
This document provides an introduction to linked data and the semantic web. It discusses how the current web contains documents that are difficult for computers to understand, but linked data publishes structured data on the web using common standards like RDF and URIs. This allows data to be interlinked and queried using SPARQL. Publishing data as linked data makes the web appear as one huge global database. There are now many incentives for organizations to publish their data as linked data, as it enables data sharing and integration in addition to potential benefits like semantic search engine optimization. Linked data is a growing trend with many large organizations and governments now publishing data.
Welcome to Linked Data 0/5 Semtech2011Juan Sequeda
This document discusses creating, publishing and consuming linked data. It introduces key concepts related to linked data including HTML, CSS, HTTP, XML, JSON, API, URL, URI, RDF, RDFa, RDFS, OWL, RIF and SPARQL. The document includes a schedule but provides no further details.
This document discusses Linked Data and the best practices for publishing and interlinking data on the web. It covers four main principles:
1) Use URIs as names for things and identify real-world objects with HTTP URIs.
2) Use HTTP URIs so that people can look up those names by dereferencing the URIs.
3) Provide useful RDF information when URIs are dereferenced, using formats like RDF/XML, RDFa, N3, or Turtle.
4) Include links to other URIs to discover more related things and connect isolated data silos. This allows data to be interlinked on the Web.
El documento habla sobre la Web Semántica. Explica que la Web Semántica publica datos estructurados usando RDF para que los datos puedan vincularse y ser integrados entre sí. También describe cómo grandes empresas como Google, Facebook y el gobierno están usando RDF y cómo la Web Semántica permitirá buscar y encontrar información de una manera más efectiva en el futuro.
The document provides an overview of the Semantic Web and linked data. It defines the Semantic Web as publishing structured data on the web in a format that computers can understand, rather than just documents. Linked data follows principles like using URIs to identify things and linking data across sources to integrate information. Query languages like SPARQL can then be used to search across linked data. Examples show how data can be published as RDF and linked to create a global database. Applications that consume and combine linked data from multiple sources are discussed.
"Rebranding for Growth", Anna VelykoivanenkoFwdays
Since there is no single formula for rebranding, this presentation will explore best practices for aligning business strategy and communication to achieve business goals.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Rock, Paper, Scissors: An Apex Map Learning JourneyLynda Kane
Slide Deck from Presentations to WITDevs (April 2021) and Cleveland Developer Group (6/28/2023) on using Rock, Paper, Scissors to learn the Map construct in Salesforce Apex development.
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersLynda Kane
Slide Deck from Automation Dreamin'2022 presentation Sharing Some Gratitude with Your Users on creating a Flow to present a random statement of Gratitude to a User in Salesforce.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
3. What is RDB2RDF?
Alice
Person
ID NAME
AGE
CID
1
Alice
25
100
2
Bob
NULL
100
foaf:name
25
Alice
foaf:age
<Person/1>
foaf:name
<Person/2>
foaf:based_near
City
CID
NAME
100
Austin
200
Madrid
<City/100>
<City/200>
www.rdb2rdf.org - ISWC2013
foaf:name
foaf:name
Austin
Madrid
4. Context
RDF
Data Management
Relational Database to RDF
(RDB2RDF)
Wrapper
Systems
Extract-Transform-Load
(ETL)
Native
Triplestores
www.rdb2rdf.org - ISWC2013
Triplestores
RDBMS-backed
NoSQL
Triplestores
Triplestores
9. F2F Meeting
ISWC 2008
March 2008
1. Recommendation
to standardize a
mapping language
2. RDB2RDF Survey
October 2008
February 2009
(1) http://www.w3.org/2005/Incubator/rdb2rdf/XGR-rdb2rdf-20090126/
(2) http://www.w3.org/2005/Incubator/rdb2rdf/RDB2RDF_SurveyReport.pdf
www.rdb2rdf.org - ISWC2013
14. How to include relational data in a
semantic application?
• Many architectural design choices.
• Technology Development Fluid.
• No established “best-of-breed” sol’n.
www.rdb2rdf.org - ISWC2013
15. Feature Space of Design Choices
• Scope of the application
– Mash-up topic page
– Heterogeneous Enterprise Data Application
• Size of the (native) database
– Data Model
– Contents
• Size of the useful (in application) database
– Data Model
– Contents
• When to translate the data?
– Wrapper
– ETL
www.rdb2rdf.org - ISWC2013
17. Scenario 1: Direct Mapping
Suppose:
• Database of Chinese Herbal Medicine and Applicable Conditions
– Database is static.
– Herbs and conditions do not have representation in western medical ontologies.
www.rdb2rdf.org - ISWC2013
18. Scenario 1: Direct Mapping
Suppose:
• Database of Chinese Herbal Medicine and Applicable Conditions
– Database is static.
– Herbs and conditions do not have representation in western medical ontologies.
SPARQL
Relational
Database
Extract
Direct
Mapping
Engine
Triplestore
Transform
www.rdb2rdf.org - ISWC2013
Load
19. Scenario 1: Direct Mapping
Suppose:
• Database of Chinese Herbal Medicine and Applicable Conditions
SPARQL
Relational
Database
Extract
Direct
Mapping
Engine
Triplestore
Transform
Load
Then:
• Existing table and column names are encoded into URIs
• Data is translated into RDF and loaded into an existing, Internet
accessible triplestore.
www.rdb2rdf.org - ISWC2013
20. Scenario 2: R2RML
Suppose:
• Database of Chinese Herbal Medicine and Applicable Conditions
+ Clinical Records
– Database is static.
– Also have, patient names, demographics, outcomes
www.rdb2rdf.org - ISWC2013
21. Scenario 2: R2RML
Suppose:
• Database of Chinese Herbal Medicine and Applicable Conditions
+ Clinical Records
Domain
Ontologies
(e.g FOAF, etc)
SPARQL
R2RML
Mapping
Engine
R2RML
File
Extract
Triplestore
Transform
Relational
Database
www.rdb2rdf.org - ISWC2013
Load
22. Scenario 2: R2RML
•
Database of Chinese Herbal Medicine and Applicable Conditions
+ Clinical Records
Domain
Ontologies
(e.g FOAF, etc)
SPARQL
R2RML
Mapping
Engine
R2RML
File
Extract
Triplestore
Transform
Load
Relational
Database
•
Then:
– Developer says, “I know FOAF, I’ll write some R2RML and that data will have
canonical URIs, and people will be able to use the data”.
www.rdb2rdf.org - ISWC2013
23. Scenario 4: Automatic Mapping
Suppose:
•
•
•
•
Database of Electronic Medical Records
Application, integration of all of a hospitals IT systems
Database has 100 tables and a total of 7,000 columns
Use of existing ontologies as a unifying data model
– ICDE10 codes (> 12,000 concepts)
– SNOMED vocabulary (> 40,000 concepts)
www.rdb2rdf.org - ISWC2013
24. Scenario 4: Automatic Mapping
Suppose:
• 7,000 Columns
• Use of existing ontologies as a
unifying data model
– ICDE10 codes (> 12,000 concepts)
– SNOMED vocabulary (> 40,000 concepts)
Then:
• Convert the database schema and
data to an ontology.
SPARQL
• Apply ontology alignment program RDF
Automatic
Mapping
Domain
Ontologies
Source
Putative
Ontology
Refined
R2RML
Direct
Mapping as
Ontology
RDB2RDF Wrapper
Relational Database
www.rdb2rdf.org - ISWC2013
25. Scenario 4: Automatic Mapping
Suppose:
• 7,000 Columns
• Use of existing ontologies as a
unifying data model
– ICDE10 codes (> 12,000 concepts)
– SNOMED vocabulary (> 40,000 concepts)
Then:
• A semantic system implements the
solution with no human labor
SPARQL
RDF
Automatic
Mapping
Domain
Ontologies
Source
Putative
Ontology
Refined
R2RML
Direct
Mapping as
Ontology
RDB2RDF Wrapper
Relational Database
www.rdb2rdf.org - ISWC2013
28. W3C RDB2RDF Standards
• Standards to map relational data to RDF
• A Direct Mapping of Relational Data to RDF
– Default automatic mapping of relational data to
RDF
• R2RML: RDB to RDF Mapping Language
– Customizable language to map relational data to
RDF
www.rdb2rdf.org - ISWC2013
31. Direct Mapping Result
25
Alice
Person
ID NAME
<Person#NAME>
AGE
Alice
<Person#AGE>
<Person#NAME>
CID
1
Alice
25
100
2
Bob
NULL
100
City
<Person/ID=1>
<Person/ID=2>
<Person#ref-CID>
CID
NAME
100
Austin
200
Madrid
<Person#ref-CID>
<City/CID=100>
<City/CID=200>
www.rdb2rdf.org - ISWC2013
<Person#NAME>
<Person#NAME>
Austin
Madrid
42. What do we need to automatically
generate?
• Generate Identifiers
– IRI
– Blank Nodes
• Generate Triples
– Table
– Literal
– Reference
43. Generating Identifiers
• Identifier for rows, tables, columns and foreign
keys
• If a table has a primary key,
– then the row identifier will be an IRI,
– otherwise a blank node
• The identifiers for table, columns and foreign keys
are IRIs
• IRIs are generated by appending to a given base
IRI
• All strings are percent encoded
44. Row Node
Base IRI
“Table Name”/“PK attr”=“PK value”
1) <http://www.ex.com/Person/ID=1>
Base IRI
“Table Name”/“PK attr”=“PK value”
2) <http://www.ex.com/Person/ID=1;SID=123>
3) Fresh Blank Node
45. More IRI
Base IRI
“Table Name”
1) <http://www.ex.com/Person>
Base IRI
“Table Name”#“Attribute”
2) <http://www.ex.com/Person#NAME>
Base IRI
“Table Name”#ref-“Attribute”
3) <http://www.ex.com/Person#ref-CID>
49. Direct Mapping Result
25
Alice
Person
ID NAME
<Person#NAME>
AGE
Alice
<Person#AGE>
<Person#NAME>
CID
1
Alice
25
100
2
Bob
NULL
100
City
<Person/ID=1>
<Person/ID=2>
<Person#ref-CID>
CID
NAME
100
Austin
200
Madrid
<Person#ref-CID>
<City/CID=100>
<City/CID=200>
<Person#NAME>
<Person#NAME>
Austin
Madrid
49
50. Summary: Direct Mapping
• Default and Automatic Mapping
• URIs are automatically generated
–
–
–
–
<table>
<table#attribute>
<table#ref-attribute>
<Table#pkAttr=pkValue>
• RDF represents the same relational schema
• RDF can be transformed by
SPARQL CONSTRUCT
– RDF represents the structure and ontology of mapping
author’s choice
50
51. What else is missing?
• Relational Schema to OWL is *not* in the
W3C standard
• NULL values
• Many-to-Many relationships (binary tables)
• “Ugly” IRIs
51
52. NULL
“The direct mapping does not generate triples
for NULL values. Note that it is not known how
to relate the behavior of the obtained RDF graph
with the standard SQL semantics of the NULL
values of the source RDB.”
A Direct Mapping of Relational Data to RDF.
W3C Recommendation
52
53. Problem
1. How can a relational database schema and
data, be automatically mapped to OWL and
RDF?
2. How can we assure correctness of mapping?
53
55. NULLs
• What should we do with NULLs?
– Generate a Blank Node
title
loc
4
Bar
prID
Foo
TX
5
Bar
NULL
ex:Producer5
_:a
– Don’t generate a triple
pr:title
ex:Producer5
Bar
How do we
reconstruct the
NULL?
55
56. Direct Mapping Properties
• Fundamental Properties
– Information Preserving: no information is lost
– Query Preserving: no query is lost
• Desirable Properties
– Monotonicity
– Semantics Preserving:
62. The Nugget
• Defined a Direct Mapping DM
• Formally defined semantics using Datalog
• Considered RDBs that may contain NULL values
• Studied DM wrt 4 properties
–
–
–
–
Information Preservation
Query Preservation
Monotonicity
Semantics Preservation
Sequeda, Arenas & Miranker. On Directly Mapping Relational Databases to RDF and OWL. WWW 2012
Sequeda et. al. Survey of Directly Mapping SQL Databases to the Semantic Web. J KER 2011
62
Tirmizi, Sequeda & Miranker. Translating SQL Applications to the Semantic Web. DEXA 2008
63. Direct Mapping
Input: A relational schema R a set of Σ of
primary keys and foreign keys and a database
instance I of this schema
Output: An RDF Graph
Definition:
A direct mapping M is a total function from the
set of all (R, Σ, I) to the set of all RDF graphs
63
64. The Direct Mapping DM
• Relational Schema to OWL
– S.H. Tirmizi, J.F. Sequeda and D.P. Miranker.
Translating SQL Applications to the Semantic Web.
DEXA 2008
• Relational Data to RDF
– M. Arenas, A. Bertails, E. Prud’hommeaux and J.F.
Sequeda. A Direct Mapping of Relational Data to
RDF. W3C Recommendation. 27 September 2012
64
65. Direct Mapping RDB to RDF and OWL
R, Σ
I
Predicates to
store (R, Σ, I)
Datalog Rules
to generate
O from R, Σ
Predicates to
Store Ontology O
Datalog Rules
to generate
OWL from O
Datalog Rules
to generate
RDF from O and I
OWL
RDF
65
66. Running Example
Consider the following relational schema:
– person(ssn, name, age) : ssn is the primary key
– student(id, degree, ssn) : id is the primary key,
ssn is a foreign key to ssn in person
Consider the following instance:
person
student
id
degree
ssn
ssn
name
age
1
Math
789
123
Juan
26
2
EE
456
456
Marcelo
27
3
CS
123
789
Daniel
NULL
66
70. Mapping to RDF
Table triples: for each relation, store the tuples
that belongs to it
Triple(http://ex.org/person#ssn=123,
rdf:type, http://ex.org/person)
70
71. Mapping to RDF
Table triples: for each relation, store the tuples
that belongs to it
Triple(http://ex.org/person#ssn=123 ,
rdf:type, http://ex.org/person )
Literal triples: for each tuple, store the values in
each of its attributes
Triple(http://ex.org/person#ssn=123 ,
http://ex.org/person#name , “Juan”)
71
72. Mapping to RDF
Reference triples: store the references generated by
the FKs
Triple(http://ex.org/student#id=3 ,
http://ex.org/student,person#ssn,ssn ,
http://ex.org/person#ssn=123 )
72
73. Mapping to RDF
Triple(http://ex.org/person#ssn=123 , http://ex.org/person#name , “Juan”)
Triple(U,V, W) ← DTP(A,R), Value(W, A, T, R), W != NULL.
TupleID(T,R,U), DTP_IRI(A,R,V)
DTP_IRI(A, R, X) ← DTP(A,R) , Concat4(base, R,”#”, A, X)
DTP(A,R) Attr(A,R), ¬IsBinRel(X)
TupleID(T, R, X) Class(R), PKn(A1, …, An, R),
Value(V1, A1, T, R), …, Value(Vn, An, T, R),
RowIRIn(V1, …, Vn, A1, …, An, T, R, X)
73
74. Information Preservation
M(R, Σ, I)
R, Σ
I
M- (M(R, Σ, I))
Theorem: The Direct Mapping is information preserving
Proof: Provide a computable mapping M74
75. Relational Algebra tuples vs.
SPARQL mappings
person
ssn
789
name
Daniel
age
NULL
t.ssn = 789
t.name = Daniel
t.age = NULL
Then, tr(t) = μ :
• Domain of μ is {?ssn, ?name}
• μ(?ssn) = 789
• μ(?name) = Daniel
75
76. Query Preservation
tr(eval(Q, I))
R, Σ
I
=
eval(Q*, M(R, Σ, I))
M(R, Σ, I)
Theorem: The Direct Mapping is query preserving
Proof: By induction on the structure of Q
Bottom-up algorithm for translating Q into Q*
76
77. Example of Query Preservation
πname, age( σdegree ≠ EE (student)
person)
person
student
id
degree
ssn
ssn
name
age
1
CS
789
123
Juan
26
2
EE
456
456
Marcelo
27
3
Math
123
789
Daniel
NULL
77
78. Example of Query Preservation
πname, age( σdegree ≠ EE (student)
person)
SELECT ?id ?degree ?ssn
WHERE {
?x rdf:type <…/student>.
OPTIONAL{?x <…/student#id> ?id. }
OPTIONAL{?x <…/student#degree> ?degree. }
OPTIONAL{?x <…/student#ssn> ?ssn. }
}
student
id
degree
ssn
1
CS
789
2
EE
456
3
Math
123
78
79. Example of Query Preservation
πname, age( σdegree ≠ EE (student)
person)
SELECT ?id ?degree ?ssn
WHERE {
?x rdf:type <…/student>.
OPTIONAL{?x <…/student#id> ?id. }
OPTIONAL{?x <…/student#degree> ?degree. }
OPTIONAL{?x <…/student#ssn> ?ssn. }
FILTER(?degree != “EE” && bound(?degree) )
}
student
id
degree
ssn
1
CS
789
2
EE
456
3
Math
123
79
80. Example of Query Preservation
πname, age( σdegree ≠ EE(student)
person)
SELECT ?ssn ?name ?age
WHERE {
?x rdf:type <…/person>.
OPTIONAL{?x <…/person#ssn> ?ssn. }
OPTIONAL{?x <…/person#name> ?name. }
OPTIONAL{?x <…/person#age > ?age. }
}
person
ssn
name
age
123
Juan
26
456
Marcelo
27
789
Daniel
NULL
80
82. Monotonicity
R, Σ
I2
I1
M(R, Σ, I2)
I2
M(R, Σ, I1)
R, Σ
I1
M(R, Σ, I2)
M(R, Σ, I1)
Theorem: The Direct Mapping is monotone
Proof: All negative atoms in the Datalog rules refer to the schema,
where the schema is fixed.
82
84. DM is not Semantics Preserving
person
ssn
Juan
name
123
Juan
123
DM(R, Σ, I)
123
person#ssn
#ssn=123
Marcelo
Marcelo
ssn is the PK
I does not satisfy Σ
however
DM(R, Σ, I) is consistent
under OWL semantics
Theorem: No monotone direct mapping is semantics preserving
Proof: By contradiction.
84
85. Extending DM for Semantics
Preservation
• Family of Datalog rules to determine violation
– Primary Keys
– Foreign Keys
• Non-monotone direct mapping
• Information Preserving
• Query Preserving
• Semantics Preserving
85
86. Summary
• The Direct Mapping DM
– Formally defined semantics using Datalog
– Consider RDBs that may contain NULL values
– Monotone, Information and Query Preserving
• If you migrate your RDB to the Semantic Web
using a monotone direct mapping, be
prepared to experience consistency when
what one would expect is inconsistency.
86
87. W3C Direct Mapping
• Only maps Relational Data to RDF
– Does not consider schema
• Monotone
• Not Information Preserving
– Because it does not direct map the schema
• Not Semantics Preserving
87
90. DM is not Semantics Preserving
PREFIX ex: <http://ex.org/>
PREFIX person: <http://ex.org/person#>
ex:person rdf:type owl:Class .
person:name rdf:type owl:DatatypeProperty ;
rdfs:domain ex:person .
person:ssn rdf:type owl:DatatypeProperty ;
rdfs:domain ex:person .
person
ssn
name
123
Juan
123
DM(R, Σ, I)
Marcelo
ssn is the PK
Juan
123
person#ssn
#ssn=123
Marcelo
I does not satisfy Σ
however
DM(R, Σ, I) is consistent
under OWL semantics
90
91. What about owl:hasKey
student
• Student/id=NULL, rdf:type Student
• Student/id=1, degree, math
id
degree
NULL Math
• owl:hasKey can not make me have a value
91
92. owl:hasKey
student
• Tuple 1
– Student/id=1, student#id, 1
– Student/id=1, degree, math
id
degree
1
Math
1
EE
• Tuple 2
– Student/id=1, student#id, 1
– Student/id=1, degree, EE
• DM generate the same IRI Student/id=1 for two
different tuples. This does not violate owl:hasKey
92
93. owl:hasKey
student
• Tuple 1
– Student/id=1, student#id, 1
– Student/id=1, degree, math
id
degree
1
Math
1
EE
• Tuple 2
– Student/id=1, student#id, 1
– Student/id=1, degree, EE
• However, UNA works:
– Student/id=1 differentFrom Student/id=1
• However a new DM that generates IRIs based on tuple ids
– Owl:hasKey would work
93
94. Semantics Preserving DMpk
• Find violation of PK
• Create artificial triple that will generate
contradiction
94
100. Direct Mapping as R2RML
25
Alice
Person
ID NAME
<Person#NAME>
AGE
Alice
<Person#AGE>
<Person#NAME>
CID
1
Alice
25
100
2
Bob
NULL
100
City
<Person/ID=1>
<Person/ID=2>
<Person#ref-CID>
CID
NAME
100
Austin
200
Madrid
<Person#ref-CID>
How can this be
represented as R2RML?
<City/CID=100>
<City/CID=200>
<Person#NAME>
<Person#NAME>
Austin
Madrid
100
102. Direct Mapping as R2RML
@prefix rr: <http://www.w3.org/ns/r2rml#> .
<TriplesMap1>
a rr:TriplesMap;
rr:logicalTable [ rr:tableName ”Person”]; mapped?
Logical Table: What is being
rr:subjectMap [
rr:template "http://www.ex.com/Person/ID={ID}";
SubjectMap: How to generate the Subject?
rr:class <http://www.ex.com/Person>
];
rr:predicateObjectMap [
rr:predicate <http://www.ex.com/Person#NAME> ;
PredicateObjectMap: ”NAME" ]
rr:objectMap [rr:column How to generate the Predicate and Object?
].
102
103. Logical Table
@prefix rr: <http://www.w3.org/ns/r2rml#> .
<TriplesMap1>
a rr:TriplesMap;
What is being mapped?
rr:logicalTable [ rr:tableName ”Person”];
rr:subjectMap [
rr:template "http://www.ex.com/Person/ID={ID}";
rr:class <http://www.ex.com/Person>
];
rr:predicateObjectMap [
rr:predicate <http://www.ex.com/Person#NAME> ;
rr:objectMap [rr:column ”NAME" ]
]
.
103
109. What if …
Person
ID
NAME GENDER
1
Alice
F
2
Bob
M
<Woman>
rdf:type
<Person/1>
foaf:name
Alice
R2RML View
SELECT ID, NAME
FROM Person
WHERE GENDER = "F"
109
110. R2RML View
@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<TriplesMap1>
a rr:TriplesMap;
Query instead of table
rr:logicalTable [ rr:sqlQuery
“””SELECT ID, NAME
FROM Person WHERE gender = “F” “””];
rr:subjectMap [
rr:template "http://www.ex.com/Person/{ID}";
rr:class <http://www.ex.com/Woman>
];
rr:predicateObjectMap [
rr:predicate foaf:name;
rr:objectMap [rr:column ”NAME" ]
]
.
110
111. Quick Overview of R2RML
• Manual and Customizable Language
• Learning Curve
• Direct Mapping bootstraps R2RML
• RDF represents the structure and ontology of
mapping author’s choice
111
114. Outline
•
•
•
•
•
•
Logical Tables: What is being mapped
Term Maps: How to create RDF terms
How to create Triples from a table
How to create Triples between two tables
Languages
Datatypes
116. R2RML Mapping
Student
sid name
pid
1
Juan
100
2
Martin 200
Professor
pid
name
100 Dan
200 Marcelo
R2RML Mapping
ex:Student1 rdf:type ex:Student .
ex:Student2 rdf:type ex:Student .
ex:Professor100 rdf:type ex:Professor .
ex:Professor200 rdf:type ex:Professor .
ex:Student1 foaf:name “Juan”.
…
117. R2RML Mapping
• A R2RML Mapping M consists of a finite set TM
TripleMaps.
• Each TM ∈TM consists of a tuple
(LT, SM, POM)
– LT: LogicalTable
– SM: SubjectMap
– POM: PredicateObjectMap
• Each POM∈POM consists of a pair (PM, OM)*
– PM: PredicateMap
– OM: ObjectMap
* For simplicity
118. R2RML Mapping
• An R2RML Mapping is represented as an RDF
Graph itself.
• Associated RDFS schema
– http://www.w3.org/ns/r2rml
• Turtle is the recommended syntax
120. LogicalTable
• Tabular SQL query result that is to be mapped
to RDF
– rr:logicalTable
1. SQL base table or view
– rr:tableName
2. R2RML View
– rr:sqlQuery
122. @prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<TriplesMap1>
a rr:TriplesMap;
rr:logicalTable [ rr:sqlQuery
“””SELECT ID, NAME
FROM Person WHERE gender = “F” “””];
rr:subjectMap [
rr:template "http://www.ex.com/Person/{ID}";
rr:class <http://www.ex.com/Woman>
];
rr:predicateObjectMap [
rr:predicate foaf:name;
rr:objectMap [rr:column ”NAME" ]
]
.
124. How to create RDF terms that define
S, P and O?
• RDF term is either an IRI, a blank node, or a
literal
• Answer
1. Constant Value
2. Value in the database
a. Raw Value in a Column
b. Column Value applied to a template
125. TermMap
• A TermMap is a function that generates an
RDF Term from a logical table row.
• RDF Term is either a IRI, or a Blank Node, or a
Literal
RDF Term
TermMap
Logical Table Row
IRI
Bnode
Literal
126. TermMap
• A TermMap must be exactly on of the
following
– Constant-valued TermMap
– Column-valued TermMap
– Template-valued TermMap
• If TermMaps are used to create S, P, O, then
– 3 ways to create a subject
– 3 ways to create a predicate
– 3 ways to create an object
128. Constant-valued TermMap
• A TermMap that ignores the logical table row
and always generates the same RDF term
• rr:constant
• Commonly used to generate constant IRIs as
the predicate
130. Column-valued TermMap
• A TermMap that maps a column value of a
column name in a logical table row
• rr:column
• Commonly used to generate Literals as the
object
132. Template-valued TermMap
• A TermMap that maps the column values of a
set of column names to a string template.
• A string template is a format that can be used
to build strings from multiple components.
• rr:template
• Commonly used to generate IRIs as the
subject or concatenate different attributes
134. Commonly used…
• … but any of these TermMaps can be used to
create any RDF Term (s,p,o). Recall:
– 3 ways to create a subject
– 3 ways to create a predicate
– 3 ways to create an object
• Template-valued TermMap are commonly used to
create an IRI for a subject, but can be used to
create Literal for an object.
• How to specify the term (IRI or Literal in this
case)?
135. TermType
• Specify the type of a term that a TermMap
should generate
• Force what the RDF term should be
• Three types of TermType:
– rr:IRI
– rr:BlankNode
– rr:Literal
138. TermType (cont…)
• Can only be applied to Template and Column
valued TermMap
• Applying to Constant-valued TermMap has no
effect
– i.e If the constant is an IRI, the term type is
automatically an IRI
139. TermType Rules
• If the Term Map is for a
1. Subject TermType = IRI or Blank Node
2. Predicate TermType = IRI
3. Object TermType = IRI or Blank Node or Literal
140. TermType is Optional
• If a TermType is not specified then
– Default = IRI
– Unless it’s for an object being defined by a
Column-based TermMap or has a language tag or
specified datatype, then the TermType is a Literal
• That’s why if there is a template in an
ObjectMap, it will always generate an IRI,
unless a TermType to Literal is specified.
144. Generating SPO
• TermMap that specifies what RDF term should
be for S, P, O
– SubjectMap
– PredicateMap
– ObjectMap
145. SubjectMap
•
•
•
•
SubjectMap is a TermMap
rr:subjectMap
Specifies what the subject of a triple should be
3 ways to create a subject
– Template-valued Term Map
– Column-valued Term Map
– Constant-valued Term Map
• Has to be an IRI or Blank Node
146. SubjectMap
• SubjectMaps are usually Template-valued
TermMap
• Use-case for Column-valued TermMap
– Use a column value to create a blank node
– URI exist as a column value
• Use-case for Constant-valued TermMap
– For all tuples: <CompanyABC> <consistsOf> <Dep{id}>
147. SubjectMap
• Optionally, a SubjectMap may have one or
more Class IRIs associated
– This will generate rdf:type triples
• rr:class
149. PredicateObjectMap
• A function that creates one or more predicateobject pairs for each logical table row.
• rr:predicateObjectMap
• It is used in conjunction with a SubjectMap to
generate RDF triples in a TriplesMap.
• A predicate-object pair consists of*
– One or more PredicateMaps
– One or more ObjectMaps or
ReferencingObjectMaps
151. PredicateMap
• PredicateMap is a TermMap
• rr:predicateMap
• Specifies what the predicate of a triple should
be
• 3 ways to create a predicate
– Template-valued Term Map
– Column-valued Term Map
– Constant-valued Term Map
• Has to be an IRI
152. PredicateMap
• PredicateMaps are usually Constant-valued
TermMap
• Use-case for Column-valued TermMap
–…
• Use-case for Template-valued TermMap
–…
156. ObjectMap
•
•
•
•
ObjectMap is a TermMap
rr:objectMap
Specifies what the object of a triple should be
3 ways to create a predicate
– Template-valued Term Map
– Column-valued Term Map
– Constant-valued Term Map
• Has to be an IRI or Literal or Blank Node
157. ObjectMap
• ObjectMaps are usually Column-valued
TermMap
• Use-case for Template-valued TermMap
– Concatenate values
– Create IRIs
• Use-case for Constant-valued TermMap
– All rows in a table share a role
160. Example 1
• We now have sufficient elements to create a
mapping that will generate
– A Subject IRI
– rdf:Type triple(s)
Student
sid name
pid
1
Juan
100
2
Martin 200
TripleMap
@prefix ex: <http://example.com/ns/>.
ex:Student1 rdf:type ex:Student .
ex:Student2 rdf:type ex:Student .
161. Example 1
@prefix rr: <http://www.w3.org/ns/r2rml#>.
@prefix ex: <http://example.com/ns/>.
<#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
].
Logical Table is a Table Name
SubjectMap is a
Template-valued TermMap
And it has one Class IRI
162. Example 2
Student
sid name
pid
1
Juan
100
2
Martin 200
TripleMap
@prefix ex: <http://example.com/ns/>.
ex:Student1 rdf:type ex:Student .
ex:Student1 ex:name “Juan” .
ex:Student2 rdf:type ex:Student .
ex:Student2 ex:name “Martin” .
163. Example 2
@prefix rr: <http://www.w3.org/ns/r2rml#>.
@prefix ex: <http://example.com/ns/>.
<#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
];
rr:predicateObjectMap [
rr:predicate ex:name;
rr:objectMap [ rr:column “name”];
].
PredicateMap which is a
Constant-valued TermMap
Logical Table is a Table Name
SubjectMap is a
Template-valued TermMap
And it has one Class IRI
PredicateObjectMap
ObjectMap which is a
Column-valued TermMap
164. Example 3
Student
sid name
pid
1
Juan
100
2
Martin 200
TripleMap
@prefix ex: <http://example.com/ns/>.
ex:Student1 rdf:type ex:Student .
ex:Student1 ex:comment “Juan is a Student” .
ex:Student2 rdf:type ex:Student .
ex:Student2 ex:comment “Martin is a Student” .
165. Example 3
@prefix rr: <http://www.w3.org/ns/r2rml#>.
@prefix ex: <http://example.com/ns/>.
<#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
];
rr:predicateObjectMap [
rr:predicate ex:comment;
rr:objectMap [
rr:template “{name} is a Student”;
rr:termType rr:Literal;
];
].
PredicateMap which is a
Constant-valued TermMap
Logical Table is a Table Name
SubjectMap is a
Template-valued TermMap
And it has one Class IRI
PredicateObjectMap
ObjectMap which is a
Template-valued TermMap
TermType
166. Example 4
Student
sid name
pid
1
Juan
100
2
Martin 200
TripleMap
@prefix ex: <http://example.com/ns/>.
ex:Student1 rdf:type ex:Student .
ex:Student1 ex:webpage <http://ex.com/Juan>.
ex:Student2 rdf:type ex:Student .
ex:Student2 ex:webpage <http://ex.com/Martin>.
167. Example 4
@prefix rr: <http://www.w3.org/ns/r2rml#>.
@prefix ex: <http://example.com/ns/>.
<#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
];
rr:predicateObjectMap [
rr:predicate ex:webpage;
rr:objectMap [
rr:template “http://ex.com/{name}”;
];
].
PredicateMap which is a
Constant-valued TermMap
Logical Table is a Table Name
SubjectMap is a
Template-valued TermMap
And it has one Class IRI
PredicateObjectMap
ObjectMap which is a
Template-valued TermMap
Note that there is not TermType
168. Example 5
Student
sid name
pid
1
Juan
100
2
Martin 200
TripleMap
@prefix ex: <http://example.com/ns/>.
ex:Student1 rdf:type ex:Student .
ex:Student1 ex:studentType ex:GradStudent.
ex:Student2 rdf:type ex:Student .
ex:Student2 ex:studentType ex:GradStudent.
169. Example 6
@prefix rr: <http://www.w3.org/ns/r2rml#>.
@prefix ex: <http://example.com/ns/>.
<#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
];
rr:predicateObjectMap [
rr:predicate ex:studentType;
rr:object ex:GradStudent ;
].
PredicateMap which is a
Constant-valued TermMap
Logical Table is a Table Name
SubjectMap is a
Template-valued TermMap
And it has one Class IRI
PredicateObjectMap
ObjectMap which is a
Constant-valued TermMap
170. RefObjectMap
• A RefObjectMap (Referencing ObjectMap)
allows using the subject of another TriplesMap
as the object generated by a ObjectMap.
• rr:objectMap
• A RefObjectMap defined by
– Exactly one ParentTripleMap, which must be a
TripleMap
– May have one or more JoinConditions
175. JoinCondition
• Child Column which must
be the column name that
exists in the logical table
of the TriplesMap that
contains the
RefObjectMap
• Parent Column which
must be the column name
that exists in the logical
table of the
RefObjectMap’s Parent
TriplesMap.
<TriplesMap1>
a rr:TriplesMap;
rr:logicalTable [ rr:tableName”Person" ];
...
rr:predicateObjectMap [
rr:predicate foaf:based_near ;
rr:objectMap [
rr:parentTripelMap <TripleMap2>;
rr:joinCondition [
rr:child “CID”;
rr:parent “CID”;]
]
].
<TriplesMap2>
a rr:TriplesMap;
rr:logicalTable [ rr:tableName ”City" ];
...
.
176. JoinCondition
• Child Query
– The Child Query of a
RefObjectMap is the
LogicalTable of the
TriplesMap containing the
RefObjectMap
• Parent Query
– The ParentQuery of a
RefObjectMap is the
LogicalTable of the Parent
TriplesMap
• If the ChildQuery and
ParentQuery are not
identical, then a
JoinCondition must exist
<TriplesMap1>
a rr:TriplesMap;
rr:logicalTable [ rr:tableName”Person" ];
...
rr:predicateObjectMap [
rr:predicate foaf:based_near ;
rr:objectMap [
rr:parentTripelMap <TripleMap2>;
rr:joinCondition [
rr:child “CID”;
rr:parent “CID”;]
]
].
<TriplesMap2>
a rr:TriplesMap;
rr:logicalTable [ rr:tableName ”City" ];
...
.
178. Example 7
Student
sid name
pid
1
Juan
100
2
Martin 200
Professor
pid
name
100 Dan
200 Marcelo
R2RML Mapping
ex:Student1 rdf:type ex:Student .
ex:Student2 rdf:type ex:Student .
ex:Professor100 rdf:type ex:Professor .
ex:Professor200 rdf:type ex:Professor .
ex:Student1 ex:hasAdvisor ex:Professor100 .
ex:Student2 ex:hasAdvisor ex:Professor200
181. Languages
• TermMap with a TermType of rr:Literal may
have a language tag
• rr:language <#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
];
rr:predicateObjectMap [
rr:predicate ex:comment;
rr:objectMap [
rr:column “comment”;
rr:language “en”;
];
].
183. Issue with Languages
• What happens if language value is in the data?
ID
COUNTRY_ID
LABEL
LANG
1
1
United States
en
2
1
Estados Unidos
es
3
2
England
en
4
2
Inglaterra
es
185. Issue with Languages
• Mapping for each language
<#TripleMap_Countries_EN>
a rr:TriplesMap;
rr:logicalTable [ rr:sqlQuery """SELECT COUNTRY_ID, LABEL, LANG, FROM
COUNTRY WHERE LANG = ’en'""" ];
rr:subjectMap [
rr:template "http://example.com/country{COUNTRY_ID}"
];
rr:predicateObjectMap [
rr:predicate rdfs:label;
rr:objectMap [
rr:column “LABEL”;
rr:language “en”;
];
].
186. Language Extension
• Single mapping for all languages
<#TripleMap_Countries_EN>
a rr:TriplesMap;
rr:logicalTable [ rr:tableName ”COUNTRY" ];
rr:subjectMap [
rr:template "http://example.com/country{COUNTRY_ID}"
];
rr:predicateObjectMap [
rr:predicate rdfs:label;
rr:objectMap [
rr:column “LABEL”;
rrx:languageColumn “LANG”;
];
].
Column Value as Language
187. Datatypes
• TermMap with a TermType of rr:Literal
• TermMap does not have rr:language
<#TriplesMap1>
rr:logicalTable [ rr:tableName ”Student”];
rr:subjectMap [
rr:template "http://example.com/ns/{sid}";
rr:class ex:Student;
];
rr:predicateObjectMap [
rr:predicate ex:startDate;
rr:objectMap [
rr:column “start_date”;
rr:datatype xsd:date;
];
].
194. W3C RDB2RDF
Data acquisition
LD Dataset
Access
SPARQL
Endpoint
Publishing
Integrated
Data in
Triplestore
Vocabulary
Mapping
• Task: Integrate data from
relational DBMS with
Linked Data
Interlinking
• Approach: map from
relational schema to
semantic vocabulary with
R2RML
R2RML
Engine
Cleansing
• Publishing: two
alternatives –
– Translate SPARQL into SQL
on the fly
– Batch transform data into
RDF, index and provide
SPARQL access in a
triplestore
Relational
DBMS
RDB2RDF
194
195. MusicBrainz Next Gen Schema
• artist
As pre-NGS, but
further attributes
• artist_credit
Allows joint credit
• release_group
Cf. ‘album’
versus:
• work
• release • track
• medium • tracklist • recording
https://wiki.musicbrainz.org/Next_Generation_Schema
RDB2RDF
195
196. Music Ontology
• MusicArtist
– ArtistEvent, member_of
• SignalGroup
‘Album’ as per Release_Group
• Release
– ReleaseEvent
•
•
•
•
Record
Track
Work
Composition
http://musicontology.com/
RDB2RDF
196
197. Scale
• MusicBrainz RDF derived via R2RML:
300M
Triples
lb:artist_member a rr:TriplesMap ;
rr:logicalTable [rr:sqlQuery
"""SELECT a1.gid, a2.gid AS band
FROM artist a1
INNER JOIN l_artist_artist ON a1.id =
l_artist_artist.entity0
INNER JOIN link ON l_artist_artist.link = link.id
INNER JOIN link_type ON link_type = link_type.id
INNER JOIN artist a2 on l_artist_artist.entity1 = a2.id
WHERE link_type.gid='5be4c609-9afa-4ea0-910b-12ffb71e3821'"""]
;
rr:subjectMap [rr:template "http://musicbrainz.org/artist/{gid}#_"]
;
rr:predicateObjectMap
[rr:predicate mo:member_of ;
rr:objectMap [rr:template
"http://musicbrainz.org/artist/{band}#_" ;
rr:termType rr:IRI]] .
197
198. Musicbrainz
• Musicbrainz Dumps:
– http://mbsandbox.org/~barry/
• Musicbrainz R2RML Mappings
– https://github.com/LinkedBrainz/MusicBrainz-R2RML
• 30 mins to generate 150M triples with Ultrawrap
– 8 Xeon cores, 16 GB Ram (2GB are usually free)
– Should be less but server was overloaded
– It use to be 8+ hours using D2RQ on a dedicated
machine
199. Musicbrainz Dump Statistics
(Lead) Table
area
artist
dbpedia
label
medium
recording
release_group
release
track
work
Triples
59798
36868228
172017
201832
18069143
11400354
3050818
9764887
75506495
1728955
156822527
Time (s)
2
423
13
3
163
209
31
151
794
20
1809
200. R2RML Class Mapping
• Mapping tables to classes is ‘easy’:
lb:Artist a rr:TriplesMap ;
rr:logicalTable [rr:tableName "artist"] ;
rr:subjectMap
[rr:class mo:MusicArtist ;
rr:template
"http://musicbrainz.org/artist/{gid}#_"] ;
rr:predicateObjectMap
[rr:predicate mo:musicbrainz_guid ;
rr:objectMap [rr:column "gid" ;
rr:datatype xsd:string]] .
RDB2RDF
200
201. R2RML Property Mapping
• Mapping columns to properties can be easy:
lb:artist_name a rr:TriplesMap ;
rr:logicalTable [rr:sqlQuery
"""SELECT artist.gid, artist_name.name
FROM artist
INNER JOIN artist_name ON artist.name =
artist_name.id"""] ;
rr:subjectMap [rr:template
"http://musicbrainz.org/artist/{gid}#_"] ;
rr:predicateObjectMap
[rr:predicate foaf:name ;
rr:objectMap [rr:column "name"]] .
RDB2RDF
201
202. NGS Advanced Relations
• Major entities (Artist, Release Group, Track, etc.) plus
URL are paired
(l_artist_artist)
• Each pairing
of instances
refers to a Link
• Links have types
(cf. RDF properties)
and attributes
http://wiki.musicbrainz.org/Advanced_Relationship
RDB2RDF
202
203. Advanced Relations Mapping
• Mapping advanced relationships (SQL joins):
lb:artist_member a rr:TriplesMap ;
rr:logicalTable [rr:sqlQuery
"""SELECT a1.gid, a2.gid AS band
FROM artist a1
INNER JOIN l_artist_artist ON a1.id = l_artist_artist.entity0
INNER JOIN link ON l_artist_artist.link = link.id
INNER JOIN link_type ON link_type = link_type.id
INNER JOIN artist a2 on l_artist_artist.entity1 = a2.id
WHERE link_type.gid='5be4c609-9afa-4ea0-910b-12ffb71e3821'"""] ;
rr:subjectMap [rr:template "http://musicbrainz.org/artist/{gid}#_"] ;
rr:predicateObjectMap
[rr:predicate mo:member_of ;
rr:objectMap [rr:template "http://musicbrainz.org/artist/{band}#_" ;
rr:termType rr:IRI]] .
RDB2RDF
203
204. Advanced Relations Mapping
• Mapping advanced relationships (SQL joins):
lb:artist_dbpedia a rr:TriplesMap ;
rr:logicalTable [rr:sqlQuery
"""SELECT artist.gid,
REPLACE(REPLACE(url, 'wikipedia.org/wiki',
'dbpedia.org/resource'),
'http://en.',
'http://')
AS url
FROM artist
INNER JOIN l_artist_url ON artist.id = l_artist_url.entity0
INNER JOIN link ON l_artist_url.link = link.id
INNER JOIN link_type ON link_type = link_type.id
INNER JOIN url on l_artist_url.entity1 = url.id
WHERE link_type.gid='29651736-fa6d-48e4-aadc-a557c6add1cb'
AND url SIMILAR TO
'http://(de|el|en|es|ko|pl|pt).wikipedia.org/wiki/%'"""] ;
rr:subjectMap lb:sm_artist ;
rr:predicateObjectMap
[rr:predicate owl:sameAs ;
rr:objectMap [rr:column "url"; rr:termType rr:IRI]] .
RDB2RDF
204
205. SPARQL Example
• SPARQL versus SQL
ASK {dbp:Paul_McCartney mo:member dbp:The_Beatles}
SELECT …
INNER
INNER
INNER
INNER
INNER
INNER
INNER
INNER
INNER
INNER
INNER
INNER
WHERE
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
JOIN
AND … AND … AND … AND …
RDB2RDF
205
206. For exercises, quiz and further material visit our website:
http://www.euclid-project.eu
Course
eBook
Other channels:
@euclid_project
EUCLID project
EUCLIDproject
206
211. “Comparing the overall performance […] of
the fastest rewriter with the fastest
relational database shows an overhead for
query rewriting of 106%. This is an indicator
that there is still room for improving the
rewriting algorithms”
[Bizer and Schultz 2009]
212. Results of BSBM 2009
Larger numbers are better
http://wifo5-03.informatik.uni-mannheim.de/bizer/berlinsparqlbenchmark/results/index.html
213. Results of BSBM 2009
100M Triple Dataset
Larger numbers are better
After March 2009, RDB2RDF systems have not
been compared to RDBMS
http://wifo5-03.informatik.uni-mannheim.de/bizer/berlinsparqlbenchmark/results/index.html
214. Current rdb2rdf systems are not capable of
providing the query execution performance
required [...] it is likely that with more work
on query translation, suitable mechanisms
for translating queries could be developed.
These mechanisms should focus on
exploiting the underlying database system’s
capabilities to optimize queries and process
large quantities of structure data
[Gray et al. 2009]
218. “SPARQL is equivalent, from an
expressive point of you, to relational
algebra”
Angles & Gutierrez 2008
219. Problem
• How can SPARQL queries be efficiently
evaluated on a RDBMS?
• Hypothesis: Existing commercial relational
database already subsume optimizations for
effective SPARQL execution on relationally
stored data
219
220. Nugget
1. Defined architecture based on SQL Views
which allows RDBMS to do the optimization.
2. Identified two important optimizations that
already exist in commercial RDBMS.
Sequeda & Miranker. Ultrawrap: SPARQL Execution on Relational Data. Journal Web Semantics 2013
220
221. Ultrawrap
Compile Time
1. Translate SQL Schema
to OWL and Mapping
2. Define RDF Triples,
as a View
Run Time
3. SPARQL to SQL
translation
4. SQL Optimizer
creates relational
query plan
221
222. Creating Tripleview
• For every ontology element (Class, Object
Property and Datatype property), create a SQL
SELECT query that outputs triples
SELECT 'Product’+ptID as s, ‘label’ as p, label as o
FROM Product WHERE label IS NOT NULL
Product
ptID label
prID
S
P
O
1
ACME Inc 4
Product1 label
ACME Inc
2
Foo Bars
Product2 label
Foo Bars
5
222
223. Creating Tripleview
SELECT ‘Product’+ptID as s, prID as s_id, ‘label’ as p, label as o, NULL as o_id
FROM Product WHERE label IS NOT NULL
Product
ptID label
prID
S
S_id
P
O
O_id
1
ACME Inc 4
Product1
1
label
ACME Inc
NULL
2
Foo Bars
Product2
2
label
Foo Bars
NULL
5
223
224. Class RDF Triples
SELECT ‘Product’+ptID as s, prID as s_id, ‘rdf:type’ as p, ‘Product’ as o, NULL as o_id
FROM Product
S
S_id
P
O
O_id
Product1
1
rdf:type
Product
NULL
Product2
2
rdf:type
Product
NULL
Object Property RDF Triples
SELECT ‘Product’+ptID as s, ptID as s_id, ‘Product#Producer’ as p, ‘Producer’+prID as o,
prID as o_id FROM Product
S
S_id
P
O
O_id
Product1
1
Product#Producer
Producer4
4
Product2
2
Product#Producer
Producer5
5
225. Creating Tripleview (…)
• Create TripleViews (SQL View), which are
unions of the SQL SELECT query that have the
same datatype
CREATE VIEW Tripleview_varchar AS
SELECT ‘Product’+ptID as s, ptID as s_id, ‘label’ as p, label as o, NULL as o_id FROM Product
UNION ALL
SELECT ‘Producer’+prID as s, prID as s_id, ‘title’ as p, title as o, NULL as o_id FROM Producer
UNION ALL …
S
S_id
P
O
O_id
Product1
1
label
ACME Inc
NULL
Product2
2
label
Foo Bars
NULL
Producer4
4
title
Foo
NULL
Producer5
5
Ttitle
Bars
NULL
225
226. CREATE VIEW Tripleview_int AS
SELECT ‘Product’+ptID as s, ptID as s_id, ‘pnum1’ as p, pnum1 as o, NULL as o_id
FROM Product
UNION ALL
SELECT ‘Product’+ptID as s, ptID as s_id, ‘pnum2’ as p, pnum2 as o, NULL as o_id
FROM Product
S
S_id
P
O
O_id
Product1
1
pnum1
1
NULL
Product2
2
pnum1
3
NULL
Product1
1
pnum2
2
NULL
Product2
2
pnum2
3
NULL
227. SPARQL and SQL
• Translating a SPARQL query to a semantically
equivalent SQL query
SELECT ?label ?pnum1
WHERE{
?x label ?label.
?x pnum1 ?pnum1.
}
SQL on Tripleview
SELECT label, pnum1
FROM product
What is
the
Query
Plan?
SELECT t1.o AS label, t2.o AS pnum1
FROM tripleview_varchar t1, tripleview_int t2
WHERE t1.p = 'label' AND
t2.p = 'pnum1' AND
t1.s_id = t2.s_id
227
228. π t1.o AS label, t2.o AS pnum1
σp = ‘label’
Tripleview_varchar t1
σp = ‘pnum1’
Tripleview_int t2
CONTRADICTION
CONTRADICTION
U
U
π Product+’id’ AS s , ‘pnum2’ AS p, pnum2 AS o
π Product+’id’ AS s , ‘pnum1’ AS p, pnum1 AS o
π Producer+’id’ AS s , ‘title’ AS p, title AS o
σpnum2 ≠ NULL
π Product+’id’ AS s , ‘label’ AS p, label AS o
σpnum1 ≠ NULL
σtitle ≠ NULL
Product
σlabel ≠ NULL
Product
Product
Producer
228
229. Detection of Unsatisfiable Conditions
• Determine that the query result will be empty
if the existence of another answer would
violate some integrity constraint in the
database.
• This would imply that the answer to the query
is null and therefore the database does not
need to be accessed
Chakravarthy, Grant and Minker. (1990) Logic-Based Approach to Semantic Query Optimization.
229
230. π t1.o AS label, t2.o AS pnum1
π Product+’id’ AS s , ‘label’ AS p, label AS o
π Product+’id’ AS s , ‘pnum1’ AS p, pnum1 AS o
σlabel ≠ NULL
σpnum1 ≠ NULL
Product
Product
Join on the same table? REDUNDANT
230
231. Self Join Elimination
• If attributes from the same table are projected
separately and then joined, then the join can
be dropped
Self Join Elimination of Projection
SELECT p1.label, p2.pnum1
FROM product p1, product p2
WHERE
p1.id = 1 and
p1.id = p2.id
SELECT label, pnum1
FROM product
WHERE
id = 1
Self Join Elimination of Selection
SELECT p1.id
FROM product p1, product p2
WHERE
p1.pnum1 >100 and
p2.pnum2 < 500 and
p1.id = p2.id
SELECT id
FROM product
WHERE
pnum1 > 100 and
pnum2 < 500
231
233. Evaluation
• Use Benchmarks that stores data in relational
databases, provides SPARQL queries and their
semantically equivalent SQL queries
• BSBM - 100 Million Triples
• Barton – 45 million triples
#54: Goal of Slide: What is the Problem and My Contribution IP: No information is being lost. Ability of reconstructing the original database from the result of the direct mappingQP: No query is being lostEvery relational query over a RDB can be translated to a equivalent SPARQL query over directly mapped RDF.
#55: Goal of Slide: Example of MappingIt seems easy… however, there are special issues
#56: Goal of Slide: NULLs is an issue where this is not straightforward
#58: Why is this hard and important because of NULLs. Need to be able to reconstruct the original database instance with nulls======The inverse direct mapping N : G -> I must be computable A mapping is computable if there exists an algorithm that, given G ∈ G, computes N (G).
#59: Why is this hard and important because of NULLs.
#60: Why is this hard and important adding new data won’t make you rerun the complete mapping
#66: Goal of Slide: How does the Direct Mapping work?5 Predicates for RDB12 Rules for RDB -> Ontology3 Predicates for Ontology10 Rules for Ontology -> OWL10 Rules for Ontology + Instances -> RDFW3C Standard only has the 10 rules for Ontology + Instances -> RDF
#70: R is a binary relation between two relations S and T if both S and T are different from R, R has exactly two attributes A and B, which form a primary key of R, A is the attribute of a foreign key in R that points to S, B is the attribute of a foreign key in R that points to T , A is not the attribute of two distinct foreign keys in R, B is not the attribute of two distinct foreign keys in R, A and B are not the attributes of a composite foreign key in R, and relation R does not have incoming foreign keys.
#75: Goal of Slide: What is Information PreservationAbility of reconstructing the original database from the result of the direct mappingMapping is losslessNo information is being lostWhy is this hard and important because of NULLs. Need to be able to reconstruct the original database instance with nulls
#77: Goal of Slide: What is Query PreservationEvery relational query over a RDB can be translated to a equivalent SPARQL query over directly mapped RDF. WHAT ABOUT SPARQL -> SQLopen issue is to prove that for any sparql query, there exist a relational algebra query. my future work aims at proving a more general result:for any mapping between any db and any ontologythis would be a corrollary.
#83: Goal of Slide: What is MonotonicityDesired PropertyAssures that a re-computation of the entire mapping is not needed after any updates to the DB
#84: Goal of Slide: What is Semantics PreservationSatisfaction of a set of integrity constraints are encoded in the mapping result
#85: Goal of Slide: Monotone can’t be Semantics Preserving
#91: Does this mean that our direct mapping is incorrect? What could we do to create a direct mapping that is semantics preserving?
#153: Getty has a use case for Column-valued TermMap
#213: These numbers are Query Mixes per Hour. Each query mix consists of 25 queries that represent ecommerce navigationThe reduced query mix takes out 2 types of queries (query 5 and 6) You can see the sparql and semantically equivalent sql here: http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/spec/ExploreUseCase/index.htmlThey were taken out because Q5: has “complex” FiltersQ6: has free text search
#220: Goal of Slide: What is the Problem and My Contribution ----- Meeting Notes (5/8/13 18:03) -----assuming wrapper
#223: A first implementation naively represented the relational data as RDF using only three columnsWe observe that the preconditions for applying optimizations were not being satisfied Indexes were not being exploited
#224: With this refinement, the preconditions for applying optimizations were being satisfied Indexes were being exploited
#226: Another precondition for applying optimization was the objects in the views need to be have the same datatype
#228: Goal of the Slide = What is the SPARQL to SQL translationTV(X, ‘label’, Y) <- Product(X, Y, _)TV(X, ‘pnum1’, Z) <- Product(X, _, Z)Q(S,T) <-TV(X, ‘label’, S), TV(X, ‘pnum1’, T) Q(S,T) <-Product(X, S, _), Product(X, _, T)