SlideShare una empresa de Scribd logo
1 de 23
Triplify – Linked Data Publication
    from Relational Databases
Sören Auer, Sebastian Dietzold, Jens Lehmann,
    Sebastian Hellmann, David Aumueller
        AKSW, Institut für Informatik
Growth of the Semantic Data Web
Still outpaced by the traditional Web 




4/24/2009          Triplify – Linked Data Publication from Relational DBs   2
Triplify Big Picture




4/24/2009     Triplify – Linked Data Publication from Relational DBs   3
Triplify Motivation
                                                                 Project          Area               Downloads
• overcome the chicken-and-egg                                   phpBB            discussion forum   235480

  dilemma of missing semantic                                    Gallery          photo gallery      166005

  representations and search                                     XOOPS            CMS                115807
                                                                 Coppermine       photo gallery      113854
  facilities on the Web                                          Typo3            CMS                63641
• Triplify leverages relational                                  Liferay Portal   Portal             39615

  representations behind existing                                eGroupWare       group ware         33865
                                                                 Alfresco         CMS                31914
  Web applications:                                              e107             CMS                19996
      – often open-source, deployed                              Lifetype         Blogging           16730
        hundred thousand times                                   Plone            CMS                13993

      – structure and semantics encoded                          Compiere         ERP + CRM          13718

        in relational database schemes                           WebCalendar      Calendar           12832
                                                                 Nucleus          Blogging           12739
        (behind Web apps) is not
                                                                 Tikiwiki         Wiki               6368
        accessible to Web search engines,
                                                                 Monthly Web application downloads at
        mashups etc.                                             Sourceforge


4/24/2009             Triplify – Linked Data Publication from Relational DBs                                  4
Overview
                     Keyword-based
                                                    Semantic-based
Web Browser
                     Search Engines
                                                    Search Engines
              HTML pages
                                       RDF triple-based descriptions
                                       (Linked Data, RDF, JSON)

                       Webserver

                                                             Endpoint registry
   Web Application              Triplify script
                                                  Triplify

                                                              Configuration
                                                               repository
                        Relational
                        Database
Solution overview
• SQL is the industry standard language for
  relational transformations
• Extend SQL with a few syntactic constructs
  opaque to the SQL query processor
• Map URL patterns to sets of SQL query patterns
• For a concrete URL request, replace placeholders
  in the query patterns, execute the query
• Transform resulting relations into various RDF
  serializations (multiple view to class approach)

4/24/2009      Triplify – Linked Data Publication from Relational DBs   6
Triplify Solution: SQL-SELECT queries
          map relational data to RDF
Triplify Configuration:
• number of SQL queries selecting information, which should be made publicly
    available.

Special SQL query result structure required (in order to convert results into RDF:
• first column must contain identifiers for generating instance URIs (i.e. the primary
   key of DB table)
• column names are used to generate property URIs, renaming columns allows to
   reuse properties from existing vocabularies such as Dublin Core, FOAF, SIOC
      – e.g. SELECT id, name AS 'foaf:name' FROM users
•   individual cells contain data values or references to other instances
    (eventually constitute the objects of resulting triples)




4/24/2009                 Triplify – Linked Data Publication from Relational DBs         7
Example: Wordpress Blog Posts
  Associate the URL path fragment 'post‘ with a number of
    SQL patterns:
          http://blog.aksw.org/triplify/post/(xxx)
                                                                                 Object property
1 SELECT id, post_author AS 'sioc:has_creator->user',
     post_title AS 'dc:title',
     post_content AS 'sioc:content', post_date AS
     'dcterms:modified^^xsd:dateTime‘,
     post_modified AS 'dcterms:created^^xsd:dateTime'
  FROM posts
                                                                               Datatype property
  WHERE post_status='publish‘ (AND id=xxx)

2 SELECT post_id id, tag_label  AS 'tag:taggedWithTag‘
  FROM post2tag INNER JOIN tag ON(post2tag.tag_id=tag.tag_id)
  (WHERE id=xxx)

3 SELECT post_id id, category_id          AS 'belongsToCategory->category‘
  FROM post2cat
  (WHERE id=xxx)

  4/24/2009           Triplify – Linked Data Publication from Relational DBs                 8
RDF Conversion
                           http://blog.aksw.org/triplify/post/1


 1    id    post_author   post_title                 post_content                post_date       post_modified
      1     5             New DBpedia release        Today we released …         200810201635    200810201635

                    id    tag:taggedWithTag                        id      belogsToCategory
                                                           3
                2
                    1     DBpedia                                  1       34
                    1     Release                                  …
                    ..



 http://blog.aksw.org/triplify/post/1        sioc:has_creator           http://blog.aksw.org/triplify/user/5
 http://blog.aksw.org/triplify/post/1        dc:title                   “New DBpedia release”
 http://blog.aksw.org/triplify/post/1        sioc:content               “Today we released …”
 http://blog.aksw.org/triplify/post/1        dcterms:modified           “20081020T1635”^^xsd:dateTime
 http://blog.aksw.org/triplify/post/1        dcterms:created            “20081020T1635”^^xsd:dateTime
 http://blog.aksw.org/triplify/post/1        tag:taggedWithTag          “DBpedia”
 http://blog.aksw.org/triplify/post/1        tag:taggedWithTag          “Release”
 http://blog.aksw.org/triplify/post/1        belongsToCategory          http://blog.aksw.org/triplify/category/34
4/24/2009                       Triplify – Linked Data Publication from Relational DBs                              9
Triplify Implementation: Simplicity
• Expose semantics as simple as possible
      – No (new) mapping languages – easy to learn
      – Few lines of code – easy to plug-in
      – Simple, reusable configurations
• Available for most popular Web app languages
      – PHP (ready), Ruby/Python under development
• Works with most popular Web app DBs
      – MySQL (extensively tested), PHP-PDO DBs (SQLite, Oracle,
        DB2, MS SQL, PostgreSQL etc.) should work, not needed
        for Virtuoso 
• Triplify exposes RDF/Ntriples, LinkedData and
  RDF/JSON

4/24/2009            Triplify – Linked Data Publication from Relational DBs   10
<?php
        include('../wp-config.php');

                                                                                         Example Config
        $triplify['namespaces']=array(
          'vocabulary'=>'http://triplify.org/vocabulary/Wordpress/',
          'foaf'=>'http://xmlns.com/foaf/0.1/',
           … );

        $triplify['queries']=array(
           'post'=>array(
              quot;SELECT id,post_author 'sioc:has_creator->user',post_date 'dcterms:created',post_title 'dc:title', post_content 'sioc:content',
                  post_modified 'dcterms:modified‘ FROM {$table_prefix}posts WHERE post_status='publish'quot;,
              quot;SELECT post_id id,tag_id 'tag:taggedWithTag' FROM {$table_prefix}post2tagquot;,
              quot;SELECT post_id id,category_id 'belongsToCategory' FROM {$table_prefix}post2catquot;,
           ),
           'tag'=>quot;SELECT tag_ID id,tag 'tag:tagName' FROM {$table_prefix}tagsquot;,
           'category'=>quot;SELECT cat_ID id,cat_name 'skos:prefLabel',category_parent 'skos:narrower' FROM {$table_prefix}categoriesquot;,
           'user'=>array(
              quot;SELECT id,user_login 'foaf:accountName',SHA(CONCAT('mailto:',user_email)) 'foaf:mbox_sha1sum',
                  user_url 'foaf:homepage',display_name 'foaf:name' FROM {$table_prefix}usersquot;,
              quot;SELECT user_id id,meta_value 'foaf:firstName' FROM {$table_prefix}usermeta WHERE meta_key='first_name'quot;,
              quot;SELECT user_id id,meta_value 'foaf:family_name' FROM {$table_prefix}usermeta WHERE meta_key='last_name'quot;,
           ),
           'comment'=>quot;SELECT comment_ID id,comment_post_id 'sioc:reply_of',comment_author AS 'foaf:name',
                SHA(CONCAT('mailto:',comment_author_email)) 'foaf:mbox_sha1sum', comment_author_url 'foaf:homepage',
                comment_date AS 'dcterms:created', comment_content 'sioc:content',comment_karma,comment_type
              FROM {$table_prefix}comments WHERE comment_approved='1'quot;,
        );

        $triplify['objectProperties']=array(
          'sioc:has_creator'=>'user', 'tag:taggedWithTag'=>'tag', 'belongsToCategory'=>'category‘,'skos:narrower'=>'category','sioc:reply_of'=>'post');

        $triplify['classMap']=array('user'=>'foaf:person', 'post'=>'sioc:Post', 'tag'=>'tag:Tag', 'category'=>'skos:Concept');

        $triplify['TTL']=0; // Caching

        $triplify['db']=new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME,DB_USER,DB_PASSWORD);
?>

4/24/2009                                      Triplify – Linked Data Publication from Relational DBs                                               11
Configuration repository
• Triplify configurations are shared at:
  http://Triplify.org
• Existing configurations for
  OpenConf, Wordpress, WackoWiki, Drupal,
  OJS, Joomla, osCommerce, Gallery, phpBB,
  OMDB …



4/24/2009       Triplify – Linked Data Publication from Relational DBs   12
Triplify Endpoint Registry
• Simple REST endpoint registry:
    http://triplify.org/Registry/?url=%rdf_source_URL%
• Itself available as Linked Data endpoint
• Enables building of mashups, vertical search
  and other applications using information from
  many sources – product search, blog search
  etc.


4/24/2009        Triplify – Linked Data Publication from Relational DBs   13
Triplify Temporal Extension
Problem: How do next generation search engines know
  something changed on the Data Web?

Different solutions:
• Try to crawl always everything: currently deployed on
  the Web
• Ping a central update notification service:
  PingTheSemanticWeb.com – will probably not scale if
  the Data Web gets really deployed
• Each linked data endpoint publishes an update log:
  Triplify Update Logs

4/24/2009         Triplify – Linked Data Publication from Relational DBs   14
Triplify Temporal Extension
                                                           special update path and vocabulary
http://example.com/Triplify/update

http://example.com/Triplify/update/2007 rdf:type update:UpdateCollection .
http://example.com/Triplify/update/2008 rdf:type update:UpdateCollection .

http://example.com/Triplify/update/2008

http://example.com/Triplify/update/2008/Jan rdf:type update:UpdateCollection .
http://example.com/Triplify/update/2008/Feb rdf:type update:UpdateCollection .

Nesting continues until we finally reach an URL, which exposes all updates performed in a certain
    second in time…

http://example.com/Triplify/update/2008/Jan/01/17/58/06

http://example.com/Triplify/update/2008/Jan/01/17/58/06/user123
 update:updatedResource http://example.com/Triplify/users/JohnDoe ;
 update:updatedAt       quot;20080101T17:58:06quot;^<xsd:dateTime> ;
 update:updatedBy       http://example.com/Triplify/users/JohnDoe .


4/24/2009                     Triplify – Linked Data Publication from Relational DBs                15
LOD Update log generation
Updates have to be logged in the DB
Update log queries have to expose a date as first
 column:

$triplify['queries']=array(
   …
   'update'=>quot;SELECT p.changed AS id,
       p.id AS 'update:updatedResource->project‘
       FROM project pquot;,
);
4/24/2009        Triplify – Linked Data Publication from Relational DBs   16
Triplify Spatial Extension:
                   Linked Open Geo Data
Spatial data is crucial for the Data Web in order to interlink geographically linked resources.
Open Street Map project (OSM) collects, organizes and publishes geo data the wiki way:
• 80.000 OSM users collected data about 22M km ways (roads, highways etc.) on earth, 25T
    km are added daily
• OSM contains a vast amount points-of-interest descriptions e.g. shops, amenities, sports
    venues, businesses, touristic and historic sights.
Goal: publish OSM geo data, interlink it with other data sources and provide efficient means
    for browsing and authoring:
• Open Street Map data extraction works on the basis of OSM database dumps, a bi-
    directional live integration of OSM and our Linked Geo Data browser and editor is currently
    in the works.
• Triplify spatial data publishing, the Triplify script for publishing linked data from relational
    databases is extended for publishing geo data, in particular with regard to the retrieval
    of information about geographical areas.
• LinkedGeo Data browser and editor is a facet-based browser for geo content, which uses
    an OLAP inspired hypercube for quickly retrieving aggregated information about any user
    selected area on earth.

                                          Linked Data Tutorial
Triplify Spatial Extension
How to publish geo-data using Triplify?
                                                                   Radius Attribute Value
                                   Lon                    Lat

http://linkedgeodata.org/near/48.213056,16.359722/1000/amenity=Hotel


http://linkedgeodata.org/node/212331
http://linkedgeodata.org/node/944523
http://linkedgeodata.org/node/234091
http://linkedgeodata.org/way/56719

node/150760824                amenity                        quot;pubquot;;
                              created_by                     quot;JOSMquot;;
                              distance                       quot;5995quot;;
                              name                           quot;La frioleraquot;;
                              geo#lat                        quot;40.4474quot;;
                              geo#long                       quot;-3.7173quot;.
4/24/2009                Triplify – Linked Data Publication from Relational DBs             18
Faceted Linked-Geo-Data Browser




             Linked Data Tutorial
RDB2RDF tool comparison
  Tool                                                                             Virtuoso RDF
                             Triplify                          D2RQ
                                                                                       Views
  Technology
                      Scripting languages                                        Whole middleware
                                                                Java
                             (PHP)                                                   solution

  SPARQL endpoint
                                  -                                X                    X

  Mapping language
                                SQL                         RDF based               RDF based

  Mapping
                             Manual                     Semi-automatic               Manual
  generation

  Scalability             Medium-high
                                               Medium                                  High
                        (but no SPARQL)
  More at: http://esw.w3.org/topic/Rdb2RdfXG/StateOfTheArt
4/24/2009               Triplify – Linked Data Publication from Relational DBs                    20
Conclusion
• Triplify supports the “long tail” of deployed Web
  applications
• Publishing RDF and Linked Data is simple
• Support for temporal and spatial data
  dimensions
      – LOD Update Logs enable differential crawling
      – Linkedgeodata.org provides spatial identifiers for most
        parts of the world
• More comprehensive solutions are (still) required
  for SPARQL support
4/24/2009           Triplify – Linked Data Publication from Relational DBs   21
Should it be a Cloud or the Sky?




4/24/2009    Triplify – Linked Data Publication from Relational DBs   22
Thanks!
Sören Auer
auer@informatik.uni-leipzig.de
Research group Agile Knowledge Engineering & Semantic Web
    (AKSW): http://aksw.org

•   http://Triplify.org
•   http://DBpedia.org
•   http://OntoWiki.net
•   http://OpenResearch.org
•   http://aksw.org/projects/xOperator
•   DL-Learner.org
•   Cofundos.org
                          Linked Data Tutorial

Más contenido relacionado

La actualidad más candente

Scaling search in Oak with Solr
Scaling search in Oak with Solr Scaling search in Oak with Solr
Scaling search in Oak with Solr
Tommaso Teofili
 
APACHE
APACHEAPACHE
APACHE
ARJUN
 
APACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXAPACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUX
webhostingguy
 
Apache web server
Apache web serverApache web server
Apache web server
zrstoppe
 

La actualidad más candente (20)

Really Simple Search - Alfresco
Really Simple Search - AlfrescoReally Simple Search - Alfresco
Really Simple Search - Alfresco
 
Visualize Solr Data with Banana: Presented by Andrew Thanalertvisuti, Lucidworks
Visualize Solr Data with Banana: Presented by Andrew Thanalertvisuti, LucidworksVisualize Solr Data with Banana: Presented by Andrew Thanalertvisuti, Lucidworks
Visualize Solr Data with Banana: Presented by Andrew Thanalertvisuti, Lucidworks
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache Karaf
 
Scaling search in Oak with Solr
Scaling search in Oak with Solr Scaling search in Oak with Solr
Scaling search in Oak with Solr
 
OSGi & Blueprint
OSGi & BlueprintOSGi & Blueprint
OSGi & Blueprint
 
APACHE
APACHEAPACHE
APACHE
 
Moving Graphs to Production At Scale
Moving Graphs to Production At ScaleMoving Graphs to Production At Scale
Moving Graphs to Production At Scale
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Cross Datacenter Replication in Apache Solr 6
Cross Datacenter Replication in Apache Solr 6Cross Datacenter Replication in Apache Solr 6
Cross Datacenter Replication in Apache Solr 6
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 
Alfresco spk-alfresco-day
Alfresco spk-alfresco-dayAlfresco spk-alfresco-day
Alfresco spk-alfresco-day
 
Apache Solr-Webinar
Apache Solr-WebinarApache Solr-Webinar
Apache Solr-Webinar
 
Rest overview briefing
Rest  overview briefingRest  overview briefing
Rest overview briefing
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
 
Survey of restful web services frameworks
Survey of restful web services frameworksSurvey of restful web services frameworks
Survey of restful web services frameworks
 
Practical Kerberos with Apache HBase
Practical Kerberos with Apache HBasePractical Kerberos with Apache HBase
Practical Kerberos with Apache HBase
 
Apache Tutorial
Apache TutorialApache Tutorial
Apache Tutorial
 
APACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXAPACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUX
 
Apache web server
Apache web serverApache web server
Apache web server
 
GraphConnect 2014 SF: From Zero to Graph in 120: Scale
GraphConnect 2014 SF: From Zero to Graph in 120: ScaleGraphConnect 2014 SF: From Zero to Graph in 120: Scale
GraphConnect 2014 SF: From Zero to Graph in 120: Scale
 

Destacado (8)

Презентация Астрафарма
Презентация АстрафармаПрезентация Астрафарма
Презентация Астрафарма
 
Geo-linked data: towards deep integration of location in the web of data
Geo-linked data: towards deep integration of location in the web of dataGeo-linked data: towards deep integration of location in the web of data
Geo-linked data: towards deep integration of location in the web of data
 
Linked Geo-Data and Early Geospatial Documents
Linked Geo-Data and Early Geospatial DocumentsLinked Geo-Data and Early Geospatial Documents
Linked Geo-Data and Early Geospatial Documents
 
SPARQL in a nutshell
SPARQL in a nutshellSPARQL in a nutshell
SPARQL in a nutshell
 
SPARQL Tutorial
SPARQL TutorialSPARQL Tutorial
SPARQL Tutorial
 
Introduction to RDF & SPARQL
Introduction to RDF & SPARQLIntroduction to RDF & SPARQL
Introduction to RDF & SPARQL
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQL
 
SPARQL Cheat Sheet
SPARQL Cheat SheetSPARQL Cheat Sheet
SPARQL Cheat Sheet
 

Similar a WWW09 - Triplify Light-Weight Linked Data Publication from Relational Databases

S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
Flink Forward
 
Architecture Patterns for Semantic Web Applications
Architecture Patterns for Semantic Web ApplicationsArchitecture Patterns for Semantic Web Applications
Architecture Patterns for Semantic Web Applications
bpanulla
 
ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...
ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...
ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...
eswcsummerschool
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open Interfaces
Steve Speicher
 

Similar a WWW09 - Triplify Light-Weight Linked Data Publication from Relational Databases (20)

History and Background of the USEWOD Data Challenge
History and Background of the  USEWOD Data ChallengeHistory and Background of the  USEWOD Data Challenge
History and Background of the USEWOD Data Challenge
 
20100614 ISWSA Keynote
20100614 ISWSA Keynote20100614 ISWSA Keynote
20100614 ISWSA Keynote
 
The Web of data and web data commons
The Web of data and web data commonsThe Web of data and web data commons
The Web of data and web data commons
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
 
Architecture Patterns for Semantic Web Applications
Architecture Patterns for Semantic Web ApplicationsArchitecture Patterns for Semantic Web Applications
Architecture Patterns for Semantic Web Applications
 
Site Interoperability Projects at DERI Galway's SW Cluster
Site Interoperability Projects at DERI Galway's SW ClusterSite Interoperability Projects at DERI Galway's SW Cluster
Site Interoperability Projects at DERI Galway's SW Cluster
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
 
URL Design
URL DesignURL Design
URL Design
 
Modèles de données et langages de description ouverts 6 - 2021-2022
Modèles de données et langages de description ouverts   6 - 2021-2022Modèles de données et langages de description ouverts   6 - 2021-2022
Modèles de données et langages de description ouverts 6 - 2021-2022
 
Open API Architectural Choices Considerations
Open API Architectural Choices ConsiderationsOpen API Architectural Choices Considerations
Open API Architectural Choices Considerations
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...
ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...
ESWC SS 2012 - Wednesday Tutorial Barry Norton: Building (Production) Semanti...
 
RDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataRDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival data
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open Interfaces
 
REST Easy with Django-Rest-Framework
REST Easy with Django-Rest-FrameworkREST Easy with Django-Rest-Framework
REST Easy with Django-Rest-Framework
 
RDFauthor (EKAW)
RDFauthor (EKAW)RDFauthor (EKAW)
RDFauthor (EKAW)
 

Más de Sören Auer

Towards Knowledge Graph based Representation, Augmentation and Exploration of...
Towards Knowledge Graph based Representation, Augmentation and Exploration of...Towards Knowledge Graph based Representation, Augmentation and Exploration of...
Towards Knowledge Graph based Representation, Augmentation and Exploration of...
Sören Auer
 
Open data for smart cities
Open data for smart citiesOpen data for smart cities
Open data for smart cities
Sören Auer
 
The web of interlinked data and knowledge stripped
The web of interlinked data and knowledge strippedThe web of interlinked data and knowledge stripped
The web of interlinked data and knowledge stripped
Sören Auer
 
Das Semantische Daten Web für Unternehmen
Das Semantische Daten Web für UnternehmenDas Semantische Daten Web für Unternehmen
Das Semantische Daten Web für Unternehmen
Sören Auer
 
Creating knowledge out of interlinked data
Creating knowledge out of interlinked dataCreating knowledge out of interlinked data
Creating knowledge out of interlinked data
Sören Auer
 
From Open Linked Data towards an Ecosystem of Interlinked Knowledge
From Open Linked Data towards an Ecosystem of Interlinked KnowledgeFrom Open Linked Data towards an Ecosystem of Interlinked Knowledge
From Open Linked Data towards an Ecosystem of Interlinked Knowledge
Sören Auer
 

Más de Sören Auer (20)

Knowledge Graph Research and Innovation Challenges
Knowledge Graph Research and Innovation ChallengesKnowledge Graph Research and Innovation Challenges
Knowledge Graph Research and Innovation Challenges
 
Knowledge Graph Introduction
Knowledge Graph IntroductionKnowledge Graph Introduction
Knowledge Graph Introduction
 
Describing Scholarly Contributions semantically with the Open Research Knowle...
Describing Scholarly Contributions semantically with the Open Research Knowle...Describing Scholarly Contributions semantically with the Open Research Knowle...
Describing Scholarly Contributions semantically with the Open Research Knowle...
 
Towards Knowledge Graph based Representation, Augmentation and Exploration of...
Towards Knowledge Graph based Representation, Augmentation and Exploration of...Towards Knowledge Graph based Representation, Augmentation and Exploration of...
Towards Knowledge Graph based Representation, Augmentation and Exploration of...
 
Cognitive data
Cognitive dataCognitive data
Cognitive data
 
Towards an Open Research Knowledge Graph
Towards an Open Research Knowledge GraphTowards an Open Research Knowledge Graph
Towards an Open Research Knowledge Graph
 
DBpedia - 10 year ISWC SWSA best paper award presentation
DBpedia  - 10 year ISWC SWSA best paper award presentationDBpedia  - 10 year ISWC SWSA best paper award presentation
DBpedia - 10 year ISWC SWSA best paper award presentation
 
Enterprise knowledge graphs
Enterprise knowledge graphsEnterprise knowledge graphs
Enterprise knowledge graphs
 
Towards digitizing scholarly communication
Towards digitizing scholarly communicationTowards digitizing scholarly communication
Towards digitizing scholarly communication
 
Project overview big data europe
Project overview big data europeProject overview big data europe
Project overview big data europe
 
LDOW2015 Position Talk and Discussion
LDOW2015 Position Talk and DiscussionLDOW2015 Position Talk and Discussion
LDOW2015 Position Talk and Discussion
 
Linked data for Enterprise Data Integration
Linked data for Enterprise Data IntegrationLinked data for Enterprise Data Integration
Linked data for Enterprise Data Integration
 
What can linked data do for digital libraries
What can linked data do for digital librariesWhat can linked data do for digital libraries
What can linked data do for digital libraries
 
Open data for smart cities
Open data for smart citiesOpen data for smart cities
Open data for smart cities
 
The web of interlinked data and knowledge stripped
The web of interlinked data and knowledge strippedThe web of interlinked data and knowledge stripped
The web of interlinked data and knowledge stripped
 
Проект Евросоюза LOD2 и Британский Институт Открытых данных
Проект Евросоюза LOD2 и Британский Институт Открытых данныхПроект Евросоюза LOD2 и Британский Институт Открытых данных
Проект Евросоюза LOD2 и Британский Институт Открытых данных
 
Introduction to the Data Web, DBpedia and the Life-cycle of Linked Data
Introduction to the Data Web, DBpedia and the Life-cycle of Linked DataIntroduction to the Data Web, DBpedia and the Life-cycle of Linked Data
Introduction to the Data Web, DBpedia and the Life-cycle of Linked Data
 
Das Semantische Daten Web für Unternehmen
Das Semantische Daten Web für UnternehmenDas Semantische Daten Web für Unternehmen
Das Semantische Daten Web für Unternehmen
 
Creating knowledge out of interlinked data
Creating knowledge out of interlinked dataCreating knowledge out of interlinked data
Creating knowledge out of interlinked data
 
From Open Linked Data towards an Ecosystem of Interlinked Knowledge
From Open Linked Data towards an Ecosystem of Interlinked KnowledgeFrom Open Linked Data towards an Ecosystem of Interlinked Knowledge
From Open Linked Data towards an Ecosystem of Interlinked Knowledge
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

WWW09 - Triplify Light-Weight Linked Data Publication from Relational Databases

  • 1. Triplify – Linked Data Publication from Relational Databases Sören Auer, Sebastian Dietzold, Jens Lehmann, Sebastian Hellmann, David Aumueller AKSW, Institut für Informatik
  • 2. Growth of the Semantic Data Web Still outpaced by the traditional Web  4/24/2009 Triplify – Linked Data Publication from Relational DBs 2
  • 3. Triplify Big Picture 4/24/2009 Triplify – Linked Data Publication from Relational DBs 3
  • 4. Triplify Motivation Project Area Downloads • overcome the chicken-and-egg phpBB discussion forum 235480 dilemma of missing semantic Gallery photo gallery 166005 representations and search XOOPS CMS 115807 Coppermine photo gallery 113854 facilities on the Web Typo3 CMS 63641 • Triplify leverages relational Liferay Portal Portal 39615 representations behind existing eGroupWare group ware 33865 Alfresco CMS 31914 Web applications: e107 CMS 19996 – often open-source, deployed Lifetype Blogging 16730 hundred thousand times Plone CMS 13993 – structure and semantics encoded Compiere ERP + CRM 13718 in relational database schemes WebCalendar Calendar 12832 Nucleus Blogging 12739 (behind Web apps) is not Tikiwiki Wiki 6368 accessible to Web search engines, Monthly Web application downloads at mashups etc. Sourceforge 4/24/2009 Triplify – Linked Data Publication from Relational DBs 4
  • 5. Overview Keyword-based Semantic-based Web Browser Search Engines Search Engines HTML pages RDF triple-based descriptions (Linked Data, RDF, JSON) Webserver Endpoint registry Web Application Triplify script Triplify Configuration repository Relational Database
  • 6. Solution overview • SQL is the industry standard language for relational transformations • Extend SQL with a few syntactic constructs opaque to the SQL query processor • Map URL patterns to sets of SQL query patterns • For a concrete URL request, replace placeholders in the query patterns, execute the query • Transform resulting relations into various RDF serializations (multiple view to class approach) 4/24/2009 Triplify – Linked Data Publication from Relational DBs 6
  • 7. Triplify Solution: SQL-SELECT queries map relational data to RDF Triplify Configuration: • number of SQL queries selecting information, which should be made publicly available. Special SQL query result structure required (in order to convert results into RDF: • first column must contain identifiers for generating instance URIs (i.e. the primary key of DB table) • column names are used to generate property URIs, renaming columns allows to reuse properties from existing vocabularies such as Dublin Core, FOAF, SIOC – e.g. SELECT id, name AS 'foaf:name' FROM users • individual cells contain data values or references to other instances (eventually constitute the objects of resulting triples) 4/24/2009 Triplify – Linked Data Publication from Relational DBs 7
  • 8. Example: Wordpress Blog Posts Associate the URL path fragment 'post‘ with a number of SQL patterns: http://blog.aksw.org/triplify/post/(xxx) Object property 1 SELECT id, post_author AS 'sioc:has_creator->user', post_title AS 'dc:title', post_content AS 'sioc:content', post_date AS 'dcterms:modified^^xsd:dateTime‘, post_modified AS 'dcterms:created^^xsd:dateTime' FROM posts Datatype property WHERE post_status='publish‘ (AND id=xxx) 2 SELECT post_id id, tag_label AS 'tag:taggedWithTag‘ FROM post2tag INNER JOIN tag ON(post2tag.tag_id=tag.tag_id) (WHERE id=xxx) 3 SELECT post_id id, category_id AS 'belongsToCategory->category‘ FROM post2cat (WHERE id=xxx) 4/24/2009 Triplify – Linked Data Publication from Relational DBs 8
  • 9. RDF Conversion http://blog.aksw.org/triplify/post/1 1 id post_author post_title post_content post_date post_modified 1 5 New DBpedia release Today we released … 200810201635 200810201635 id tag:taggedWithTag id belogsToCategory 3 2 1 DBpedia 1 34 1 Release … .. http://blog.aksw.org/triplify/post/1 sioc:has_creator http://blog.aksw.org/triplify/user/5 http://blog.aksw.org/triplify/post/1 dc:title “New DBpedia release” http://blog.aksw.org/triplify/post/1 sioc:content “Today we released …” http://blog.aksw.org/triplify/post/1 dcterms:modified “20081020T1635”^^xsd:dateTime http://blog.aksw.org/triplify/post/1 dcterms:created “20081020T1635”^^xsd:dateTime http://blog.aksw.org/triplify/post/1 tag:taggedWithTag “DBpedia” http://blog.aksw.org/triplify/post/1 tag:taggedWithTag “Release” http://blog.aksw.org/triplify/post/1 belongsToCategory http://blog.aksw.org/triplify/category/34 4/24/2009 Triplify – Linked Data Publication from Relational DBs 9
  • 10. Triplify Implementation: Simplicity • Expose semantics as simple as possible – No (new) mapping languages – easy to learn – Few lines of code – easy to plug-in – Simple, reusable configurations • Available for most popular Web app languages – PHP (ready), Ruby/Python under development • Works with most popular Web app DBs – MySQL (extensively tested), PHP-PDO DBs (SQLite, Oracle, DB2, MS SQL, PostgreSQL etc.) should work, not needed for Virtuoso  • Triplify exposes RDF/Ntriples, LinkedData and RDF/JSON 4/24/2009 Triplify – Linked Data Publication from Relational DBs 10
  • 11. <?php include('../wp-config.php'); Example Config $triplify['namespaces']=array( 'vocabulary'=>'http://triplify.org/vocabulary/Wordpress/', 'foaf'=>'http://xmlns.com/foaf/0.1/', … ); $triplify['queries']=array( 'post'=>array( quot;SELECT id,post_author 'sioc:has_creator->user',post_date 'dcterms:created',post_title 'dc:title', post_content 'sioc:content', post_modified 'dcterms:modified‘ FROM {$table_prefix}posts WHERE post_status='publish'quot;, quot;SELECT post_id id,tag_id 'tag:taggedWithTag' FROM {$table_prefix}post2tagquot;, quot;SELECT post_id id,category_id 'belongsToCategory' FROM {$table_prefix}post2catquot;, ), 'tag'=>quot;SELECT tag_ID id,tag 'tag:tagName' FROM {$table_prefix}tagsquot;, 'category'=>quot;SELECT cat_ID id,cat_name 'skos:prefLabel',category_parent 'skos:narrower' FROM {$table_prefix}categoriesquot;, 'user'=>array( quot;SELECT id,user_login 'foaf:accountName',SHA(CONCAT('mailto:',user_email)) 'foaf:mbox_sha1sum', user_url 'foaf:homepage',display_name 'foaf:name' FROM {$table_prefix}usersquot;, quot;SELECT user_id id,meta_value 'foaf:firstName' FROM {$table_prefix}usermeta WHERE meta_key='first_name'quot;, quot;SELECT user_id id,meta_value 'foaf:family_name' FROM {$table_prefix}usermeta WHERE meta_key='last_name'quot;, ), 'comment'=>quot;SELECT comment_ID id,comment_post_id 'sioc:reply_of',comment_author AS 'foaf:name', SHA(CONCAT('mailto:',comment_author_email)) 'foaf:mbox_sha1sum', comment_author_url 'foaf:homepage', comment_date AS 'dcterms:created', comment_content 'sioc:content',comment_karma,comment_type FROM {$table_prefix}comments WHERE comment_approved='1'quot;, ); $triplify['objectProperties']=array( 'sioc:has_creator'=>'user', 'tag:taggedWithTag'=>'tag', 'belongsToCategory'=>'category‘,'skos:narrower'=>'category','sioc:reply_of'=>'post'); $triplify['classMap']=array('user'=>'foaf:person', 'post'=>'sioc:Post', 'tag'=>'tag:Tag', 'category'=>'skos:Concept'); $triplify['TTL']=0; // Caching $triplify['db']=new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME,DB_USER,DB_PASSWORD); ?> 4/24/2009 Triplify – Linked Data Publication from Relational DBs 11
  • 12. Configuration repository • Triplify configurations are shared at: http://Triplify.org • Existing configurations for OpenConf, Wordpress, WackoWiki, Drupal, OJS, Joomla, osCommerce, Gallery, phpBB, OMDB … 4/24/2009 Triplify – Linked Data Publication from Relational DBs 12
  • 13. Triplify Endpoint Registry • Simple REST endpoint registry: http://triplify.org/Registry/?url=%rdf_source_URL% • Itself available as Linked Data endpoint • Enables building of mashups, vertical search and other applications using information from many sources – product search, blog search etc. 4/24/2009 Triplify – Linked Data Publication from Relational DBs 13
  • 14. Triplify Temporal Extension Problem: How do next generation search engines know something changed on the Data Web? Different solutions: • Try to crawl always everything: currently deployed on the Web • Ping a central update notification service: PingTheSemanticWeb.com – will probably not scale if the Data Web gets really deployed • Each linked data endpoint publishes an update log: Triplify Update Logs 4/24/2009 Triplify – Linked Data Publication from Relational DBs 14
  • 15. Triplify Temporal Extension special update path and vocabulary http://example.com/Triplify/update http://example.com/Triplify/update/2007 rdf:type update:UpdateCollection . http://example.com/Triplify/update/2008 rdf:type update:UpdateCollection . http://example.com/Triplify/update/2008 http://example.com/Triplify/update/2008/Jan rdf:type update:UpdateCollection . http://example.com/Triplify/update/2008/Feb rdf:type update:UpdateCollection . Nesting continues until we finally reach an URL, which exposes all updates performed in a certain second in time… http://example.com/Triplify/update/2008/Jan/01/17/58/06 http://example.com/Triplify/update/2008/Jan/01/17/58/06/user123 update:updatedResource http://example.com/Triplify/users/JohnDoe ; update:updatedAt quot;20080101T17:58:06quot;^<xsd:dateTime> ; update:updatedBy http://example.com/Triplify/users/JohnDoe . 4/24/2009 Triplify – Linked Data Publication from Relational DBs 15
  • 16. LOD Update log generation Updates have to be logged in the DB Update log queries have to expose a date as first column: $triplify['queries']=array( … 'update'=>quot;SELECT p.changed AS id, p.id AS 'update:updatedResource->project‘ FROM project pquot;, ); 4/24/2009 Triplify – Linked Data Publication from Relational DBs 16
  • 17. Triplify Spatial Extension: Linked Open Geo Data Spatial data is crucial for the Data Web in order to interlink geographically linked resources. Open Street Map project (OSM) collects, organizes and publishes geo data the wiki way: • 80.000 OSM users collected data about 22M km ways (roads, highways etc.) on earth, 25T km are added daily • OSM contains a vast amount points-of-interest descriptions e.g. shops, amenities, sports venues, businesses, touristic and historic sights. Goal: publish OSM geo data, interlink it with other data sources and provide efficient means for browsing and authoring: • Open Street Map data extraction works on the basis of OSM database dumps, a bi- directional live integration of OSM and our Linked Geo Data browser and editor is currently in the works. • Triplify spatial data publishing, the Triplify script for publishing linked data from relational databases is extended for publishing geo data, in particular with regard to the retrieval of information about geographical areas. • LinkedGeo Data browser and editor is a facet-based browser for geo content, which uses an OLAP inspired hypercube for quickly retrieving aggregated information about any user selected area on earth. Linked Data Tutorial
  • 18. Triplify Spatial Extension How to publish geo-data using Triplify? Radius Attribute Value Lon Lat http://linkedgeodata.org/near/48.213056,16.359722/1000/amenity=Hotel http://linkedgeodata.org/node/212331 http://linkedgeodata.org/node/944523 http://linkedgeodata.org/node/234091 http://linkedgeodata.org/way/56719 node/150760824 amenity quot;pubquot;; created_by quot;JOSMquot;; distance quot;5995quot;; name quot;La frioleraquot;; geo#lat quot;40.4474quot;; geo#long quot;-3.7173quot;. 4/24/2009 Triplify – Linked Data Publication from Relational DBs 18
  • 19. Faceted Linked-Geo-Data Browser Linked Data Tutorial
  • 20. RDB2RDF tool comparison Tool Virtuoso RDF Triplify D2RQ Views Technology Scripting languages Whole middleware Java (PHP) solution SPARQL endpoint - X X Mapping language SQL RDF based RDF based Mapping Manual Semi-automatic Manual generation Scalability Medium-high Medium High (but no SPARQL) More at: http://esw.w3.org/topic/Rdb2RdfXG/StateOfTheArt 4/24/2009 Triplify – Linked Data Publication from Relational DBs 20
  • 21. Conclusion • Triplify supports the “long tail” of deployed Web applications • Publishing RDF and Linked Data is simple • Support for temporal and spatial data dimensions – LOD Update Logs enable differential crawling – Linkedgeodata.org provides spatial identifiers for most parts of the world • More comprehensive solutions are (still) required for SPARQL support 4/24/2009 Triplify – Linked Data Publication from Relational DBs 21
  • 22. Should it be a Cloud or the Sky? 4/24/2009 Triplify – Linked Data Publication from Relational DBs 22
  • 23. Thanks! Sören Auer auer@informatik.uni-leipzig.de Research group Agile Knowledge Engineering & Semantic Web (AKSW): http://aksw.org • http://Triplify.org • http://DBpedia.org • http://OntoWiki.net • http://OpenResearch.org • http://aksw.org/projects/xOperator • DL-Learner.org • Cofundos.org Linked Data Tutorial