SlideShare a Scribd company logo
Semantic TYPO3
Develop Extensions with Semantic Web in Mind
Jochen Rau @ T3CON11SF
June 11, 2011
(c) by Benjamin Nowack, Attribution 3.0 Unported (CC BY 3.0)
Concepts



           (c) by Benjamin Nowack, Attribution 3.0 Unported (CC BY 3.0)
Implementations



   (c) by Benjamin Nowack, Attribution 3.0 Unported (CC BY 3.0)
http://commons.wikimedia.org/wiki/File:Z%C3%BCrich_-_Seefeld_-_Heureka_IMG_1757.JPG
No Rocket
 Science
Let's make some assertions about me




Jochen's is a Person.
Jochen's age is 40.
Jochen's name is Jochen Rau.
Jochen likes TYPO3 and Wine.
Jochen lives in Massachusetts.
Let's make some assertions about me




Jochen's is a Person.
Jochen's age is 40.
Jochen's name is Jochen Rau.
Jochen likes TYPO3 and Wine.
Jochen lives in Massachusetts.




  Subject Predicate Object
Let's make some assertions about me




Jochen's is a Person.
Jochen's age is 40.
Jochen's name is Jochen Rau.
Jochen likes TYPO3 and Wine.
Jochen lives in Massachusetts.




  Subject Predicate Object
            Triple
Let's make some assertions about me

                                  Jochen                   40
                                              age
                                                    name
                                                                Jochen Rau
                              is a                likes         TYPO3
                                             likes
                                  lives in
Jochen's is a Person.    Person
Jochen's age is 40.                               Wine
                                  Massachusetts
Jochen's name is Jochen Rau.
Jochen likes TYPO3 and Wine.
Jochen lives in Massachusetts.
Let's make some assertions about me

                                  Jochen                   40
                                              age
                                                    name
                                                                  Jochen Rau
                              is a                likes           TYPO3
                                             likes
                                  lives in
Jochen's is a Person.    Person
Jochen's age is 40.                               Wine
                                  Massachusetts
Jochen's name is Jochen Rau.
Jochen likes TYPO3 and Wine.
                                                               TYPO3
Jochen lives in Massachusetts.
                                                                       license    GNU General
                                                                                  Public License
                                                                description

                                                    platform            TYPO3 is a free and
                                                                        open source content
                                                                        management system as
                                                                        well as a Model–view–
                                                                        controller (MVC) Web
                                                         PHP            Application Development
                                                                        framework written in
                                                                        PHP.
Let's make some assertions about me

                                  Jochen                   40
                                              age
                                                    name
                                                                  Jochen Rau
                              is a                likes           TYPO3
                                             likes                                   GNU General
                                                                          license
                                  lives in                                           Public License
Jochen's is a Person.    Person                                    description
Jochen's age is 40.                               Wine
                                  Massachusetts
Jochen's name is Jochen Rau.                             platform          TYPO3 is a free and
                                                                           open source content
Jochen likes TYPO3 and Wine.                                               management system as
Jochen lives in Massachusetts.                                             well as a Model–view–
                                                                           controller (MVC) Web
                                                            PHP            Application Development
                                                                           framework written in
                                                                           PHP.
Unique Names for Resources

                Jochen




                  knows

                          Sebastian




                           likes




                                   Paris
Unique Names for Resources

                            <http://typoplanet.de/resource/Jochen>




                          <http://xmlns.com/foaf/0.1/knows>


                                               <http://sebastian.kurfuerst.eu/>




                                    <http://xmlns.com/foaf/0.1/likes>




                                                  <http://en.wikipedia.org/wiki/Paris_(2008_film)>
<http://typoplanet.de/resource/Jochen>

<http://typoplanet.de/resource/hg132k4jhjh1234t>
<urn:uuid:67ecc3bd-07e2-44f4-a788-597bf9949f0c>

<tel:+1-617-555-7332>
<mailto:jochen.rau@typoplanet.de>
Unique Names for Resources

              <http://typoplanet.de/resource/Jochen>




            <http://xmlns.com/foaf/0.1/knows>


                              <http://sebastian.kurfuerst.eu/>




                           <http://sebastian.kurfuerst.eu/>




                <http://xmlns.com/foaf/0.1/likes>




                              <http://en.wikipedia.org/wiki/Paris_(2008_film)>
Turtle Serialization of an RDF Graph

<http://example.com/JR>
	   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .

<http://example.com/JR>
	   <http://xmlns.com/foaf/0.1/age> "40" .

<http://example.com/JR>
	   <http://xmlns.com/foaf/0.1/name> "Jochen Rau" .

<http://example.com/JR>
	   <http://xmlns.com/foaf/0.1/interest> <http://dbpedia.org/resource/TYPO3> .

<http://example.com/JR>
	   <http://xmlns.com/foaf/0.1/interest> <http://dbpedia.org/resource/Wine> .

<http://example.com/JR>
	   <http://example.com/livesIn> <http://data.nytimes.com/Massachusetts> .
Turtle Serialization of an RDF Graph
@prefix   ex: <http://example.org/> .
@prefix   dbp: <http://dbpedia.org/resource/> .
@prefix   nyt: <http://data.nytimes.com/> .
@prefix   foaf: <http://xmlns.com/foaf/0.1/> .

ex:JR		   a	 	 	 	 	 foaf:Person .
ex:JR		   foaf:age		 	 "40" .
ex:JR		   foaf:name	 	 "Jochen Rau" .
ex:JR		   foaf:interest	 dbp:TYPO3 .
ex:JR		   foaf:interest	 dbp:Wine .
ex:JR		   ex:livesIn	 	 nyt:Massachusetts .
Turtle Syntactic sugar
@prefix   ex: <http://example.org/> .
@prefix   dbp: <http://dbpedia.org/resource/> .
@prefix   nyt: <http://data.nytimes.com/> .
@prefix   foaf: <http://xmlns.com/foaf/0.1/> .

ex:JR		   a	 	 	 	      	   foaf:Person ;
	 	 	     ex:age	 	     	   "40" ;
	 	 	     ex:name	 	    	   "Jochen Rau" ;
	 	 	     ex:likes		    	   dbp:TYPO3 ;
	 	 	     ex:likes		    	   dbp:Wine ;
	 	 	     ex:livesIn	   	   nyt:Massachusetts .
Turtle And even more syntactic sugar
@prefix   ex: <http://example.org/> .
@prefix   dbp: <http://dbpedia.org/resource/> .
@prefix   nyt: <http://data.nytimes.com/> .
@prefix   foaf: <http://xmlns.com/foaf/0.1/> .

ex:JR		   a	 	 	 	      	   foaf:Person ;
	 	 	     ex:age	 	     	   "40" ;
	 	 	     ex:name	 	    	   "Jochen Rau" ;
	 	 	     ex:likes		    	   dbp:TYPO3 ,
	 	 	     	 	 	 	       	   dbp:Wine ;
	 	 	     ex:livesIn	   	   nyt:Massachusetts .
RDF at a Glance

 Simple, ubiquitous way of modeling data
 Main concepts
    Triples of subject, predicate, and object
    Unique names for resources
    Objects can also be literal values (with data type or language)
 Performant data stores (e.g. Virtuoso, AllegroGraph, BigOWLIM)
 Existing frameworks with rich APIs (e.g. JENA, Sesame, Erfurt)
 Billions of triples as Open Data available (e.g. Wikipedia,
 MusicBrainz)
 Many di erent serialization formats (e.g. RDF/XML, Turtle, N3)
 Makes data migration much easier
Description Logic and Rules OWL and RIF

 What? Why?
   Knowledge is spread all over the system:
   Domain model, database scheme, TS con gurartion, FlexForm,
   TCA, documentation, Templates ...
   In di erent Formats:
   SQL, TypoScript, XML, PHP, HTML ...
   Using inconsistent terminology:
   "Template" in TYPO3?
 So, what to do?
   data and metadata in the same data structure (RDF)
   use well de ned languages to describe (meta)data (OWL RIF)
Description Logic and Rules OWL and RIF




                     Knublauch, Holger. KBeans Specification: Semantic Transparency for
                     Components and Domain Models. Technical Report FAW-TR-01001,
                     FAW Ulm, 2001.
RDF in HTML

Three di erent standards to markup your HTML code
   Microformats
   Microdata (part of HTML5 spec)
   RDFa ("RDF for attributes", W3C Recommendation)
A subset of RDF
Makes web pages machine readable by your favorite search engine
RDF in HTML RDFa
<div>

   <p>
     Alice Birpemswick
   </p>

   <p>
     Email: <a href="mailto:alice@example.com">alice@example.com</a>
   </p>

   <p>
     Phone: <a href="tel:+1-617-555-7332">+1 617.555.7332</a>
   </p>
</div>
RDF in HTML RDFa
<div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/resource/alice"
typeof="Person">
   <p property="foaf:name">
     Alice Birpemswick
   </p>

   <p>
     Email: <a rel="foaf:mbox" href="mailto:alice@example.com">alice@example.com</a>
   </p>

   <p>
     Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1 617.555.7332</a>
   </p>
</div>
RDF in HTML RDFa
<div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/resource/alice"
typeof="Person">
   <p property="foaf:name">
     Alice Birpemswick
   </p>

   <p>
     Email: <a rel="foaf:mbox" href="mailto:alice@example.com">alice@example.com</a>
   </p>

   <p>
     Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1 617.555.7332</a>
   </p>
</div>
                                http://example.com/resource/alice
RDF in HTML RDFa
<div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/alice#me" rel="knows">
   <ul>
       <li typeof="Person">
         <a rel="foaf:homepage" href="http://example.com/bob" property="foaf:name">Bob</a>
       </li>
       <li typeof="Person" >
         <a rel="foaf:homepage" href="http://example.com/eve" property="foaf:name">Eve</a>
       </li>
       <li typeof="Person" >
         <a rel="foaf:homepage" href="http://example.com/manu" property="foaf:name">Manu</a>
       </li>
   </ul>
</div>
RDF in HTML RDFa
<div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/alice#me" rel="knows">
   <ul>
       <li typeof="Person">
         <a rel="foaf:homepage" href="http://example.com/bob" property="foaf:name">Bob</a>
       </li>
       <li typeof="Person" >
         <a rel="foaf:homepage" href="http://example.com/eve" property="foaf:name">Eve</a>
       </li>
       <li typeof="Person" >
         <a rel="foaf:homepage" href="http://example.com/manu" property="foaf:name">Manu</a>
       </li>
   </ul>
</div>
RDF in HTML GoodRelations Vocabulary
RDF in HTML Enable RDFa in TYPO3
# Set the doctype and add common namespaces
config.doctype = xhtml+rdfa_10
config.namespaces {
   xml = http://www.w3.org/XML/1998/namespace
   xmlns = http://www.w3.org/2000/xmlns/
   xsd = http://www.w3.org/2001/XMLSchema#
   xhv = http://www.w3.org/1999/xhtml/vocab#
   rdfa = http://www.w3.org/ns/rdfa#
   rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns#
   rdfs = http://www.w3.org/2000/01/rdf-schema#
   owl = http://www.w3.org/2002/07/owl#
   rif = http://www.w3.org/2007/rif#

[...]

    dbo = http://dbpedia.org/ontology/
    foaf = http://xmlns.com/foaf/0.1/
    geo = http://www.w3.org/2003/01/geo/wgs84_pos#
    gr = http://purl.org/goodrelations/v1#
    cal = http://www.w3.org/2002/12/cal/ical#
    og = http://ogp.me/ns#
    v = http://rdf.data-vocabulary.org/#
    bibo = http://purl.org/ontology/bibo/
}
Demo
EXT:semantic SPARQL Client
Linked Data Cloud
Linked Data Cloud
Querying a Graph SPARQL

W3C Recommendation
Graph pattern matching
Similar to SQL and Turtle
Querying a Graph Filter, Functions, Ordering ...
Querying a Graph Custom Functions
Querying a Graph Property Paths
Querying a Graph Property Paths and Inference
Querying a Graph Subqueries
EXT:semantic SPARQL Query Administration

 Default namespaces
 (RDFa default pro le)
 Syntax highlighting
 Code indentation




   Content Manager
EXT:semantic SPARQL Query Administration

 Default namespaces
 (RDFa default pro le)
 Syntax highlighting
 Code indentation
 Frontend and backend




   Content Manager
EXT:semantic Custom Content Elements

 Default layouts and custom HTML template code
 Support for pagination (dynamic query re-writing)
EXT:semantic Custom Content Elements

     Frontend                 Backend
EXT:semantic Custom Content Elements

 Query results variables are bound to the template variables
 and are used as labels in a human readable form
Demo
Developer


    Query Object Model

class Tx_BlogExample_Domain_Repository_PostRepository extends Tx_Extbase_Persistence_Repository {

     public function findByTagAndBlog($tag, Tx_BlogExample_Domain_Model_Blog $blog, $limit = 20) {
         $query = $this->createQuery();
         return $query->matching(
                 $query->logicalAnd(
                     $query->equals('blog', $blog),
                     $query->equals('tags.name', $tag)
                 )
             )
             ->setOrderings(array('date' => Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING))
             ->setLimit((integer)$limit)
             ->execute();
     }

     public function findNext(Tx_BlogExample_Domain_Model_Post $post) {
         $query = $this->createQuery();
         $posts = $query->matching($query->greaterThan('date', $post->getDate()))
             ->setOrderings(array('date' => Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING))
             ->execute();
         return $posts->getFirst();
     }

}
Semantic TYPO3 Current Projects

 SPARQL Client (EXT:semantic, Jochen Rau)
 RDF/RDFa support (Sebastian Kurfürst, masters thesis)
 CMS ontology (Andreas Wolf, GSoC)
 Taxonomy and Categories (EXT:taxonomy, Fabien Udriot)
 Semantic persistence backend (EXT:semantic, Thomas Maroschik)
 Globally unique identi ers in v4 (EXT:identity, Thomas Maroschik)
 Tagging support for Editors (v4: RTE plugin, v5: Aloha)
Semantic TYPO3 Roadmap

Improve usability of SPARQL Client
Transform Domain Models into RDF(a)
Transform OWL Ontologies into PHP Code and Metadata
Extbase Query Object Model -> SPARQL Query
Semantic TYPO3 Vision
Semantic TYPO3 Vision
Semantic TYPO3 Vision
Demo
Thanks!

 Twitter @jocrau
 Email jochen.rau@typoplanet.de
 Blog http://blog.typoplanet.de
 Talk Lunch

More Related Content

Viewers also liked

Presentación donator 61113
Presentación donator 61113Presentación donator 61113
Presentación donator 61113
La Gente De Tom
 
Beddit Presentation
Beddit PresentationBeddit Presentation
Beddit Presentation
Technopolis Plc
 
Fed exsocialmediastudy findingsreport_final
Fed exsocialmediastudy findingsreport_finalFed exsocialmediastudy findingsreport_final
Fed exsocialmediastudy findingsreport_final
Dr. William J. Ward
 
CiviCRM User Group-Intro to CiviCRM
CiviCRM User Group-Intro to CiviCRMCiviCRM User Group-Intro to CiviCRM
CiviCRM User Group-Intro to CiviCRM
dggreenberg
 
Lean it and lean software factory
Lean it and lean software factoryLean it and lean software factory
Lean it and lean software factory
Dominique LAPERE
 
M Odelo Eoa
M Odelo EoaM Odelo Eoa
M Odelo EoaDhaliaP
 
M2 programacion grafica_2ed
M2 programacion grafica_2edM2 programacion grafica_2ed
M2 programacion grafica_2ed
Laboratorios ACME
 
ESD Company Profile - 17-2-2016 Rev2
ESD Company Profile - 17-2-2016 Rev2ESD Company Profile - 17-2-2016 Rev2
ESD Company Profile - 17-2-2016 Rev2T. MADIBA
 
Carmen grimaldi herrera. concepto; competencia
Carmen grimaldi herrera. concepto; competenciaCarmen grimaldi herrera. concepto; competencia
Carmen grimaldi herrera. concepto; competencia
k4rol1n4
 
Fotos dias de campo
Fotos dias de campoFotos dias de campo
Fotos dias de campo
MariguLopez
 
Ashish sahare Mtech ExTC CV
Ashish sahare Mtech ExTC CVAshish sahare Mtech ExTC CV
Ashish sahare Mtech ExTC CVashish sahare
 
EBAE Assessors online briefing - 2016
EBAE Assessors online briefing -  2016 EBAE Assessors online briefing -  2016
EBAE Assessors online briefing - 2016
Kim Barton
 
Science Update - No 260 - June 2015
Science Update - No 260 - June 2015Science Update - No 260 - June 2015
Science Update - No 260 - June 2015
DOILibrary1151
 
Balonmano
BalonmanoBalonmano
Balonmano
AnaMariaV8
 
Gaba Presentation 2010
Gaba Presentation 2010Gaba Presentation 2010
Gaba Presentation 2010
Cornelia Weiss
 
10 formas de mimar las imágenes de tus diapositivas
10 formas de mimar las imágenes de tus diapositivas10 formas de mimar las imágenes de tus diapositivas
10 formas de mimar las imágenes de tus diapositivas
Carles Caño Valls
 
KonoGes
KonoGesKonoGes
KonoGes
KONOGES
 
Unidad 8. estado actual de la investigacion educativa en colombia
Unidad 8. estado actual de la investigacion educativa en colombiaUnidad 8. estado actual de la investigacion educativa en colombia
Unidad 8. estado actual de la investigacion educativa en colombiaKarol Zea
 
Img Gestion Documental
Img Gestion DocumentalImg Gestion Documental
Img Gestion Documental
Serikat
 
Healtho5 supported Medical Tele Consultation Centers in Bangladesh
Healtho5 supported Medical Tele Consultation Centers in BangladeshHealtho5 supported Medical Tele Consultation Centers in Bangladesh
Healtho5 supported Medical Tele Consultation Centers in Bangladesh
Healtho5 Solutions
 

Viewers also liked (20)

Presentación donator 61113
Presentación donator 61113Presentación donator 61113
Presentación donator 61113
 
Beddit Presentation
Beddit PresentationBeddit Presentation
Beddit Presentation
 
Fed exsocialmediastudy findingsreport_final
Fed exsocialmediastudy findingsreport_finalFed exsocialmediastudy findingsreport_final
Fed exsocialmediastudy findingsreport_final
 
CiviCRM User Group-Intro to CiviCRM
CiviCRM User Group-Intro to CiviCRMCiviCRM User Group-Intro to CiviCRM
CiviCRM User Group-Intro to CiviCRM
 
Lean it and lean software factory
Lean it and lean software factoryLean it and lean software factory
Lean it and lean software factory
 
M Odelo Eoa
M Odelo EoaM Odelo Eoa
M Odelo Eoa
 
M2 programacion grafica_2ed
M2 programacion grafica_2edM2 programacion grafica_2ed
M2 programacion grafica_2ed
 
ESD Company Profile - 17-2-2016 Rev2
ESD Company Profile - 17-2-2016 Rev2ESD Company Profile - 17-2-2016 Rev2
ESD Company Profile - 17-2-2016 Rev2
 
Carmen grimaldi herrera. concepto; competencia
Carmen grimaldi herrera. concepto; competenciaCarmen grimaldi herrera. concepto; competencia
Carmen grimaldi herrera. concepto; competencia
 
Fotos dias de campo
Fotos dias de campoFotos dias de campo
Fotos dias de campo
 
Ashish sahare Mtech ExTC CV
Ashish sahare Mtech ExTC CVAshish sahare Mtech ExTC CV
Ashish sahare Mtech ExTC CV
 
EBAE Assessors online briefing - 2016
EBAE Assessors online briefing -  2016 EBAE Assessors online briefing -  2016
EBAE Assessors online briefing - 2016
 
Science Update - No 260 - June 2015
Science Update - No 260 - June 2015Science Update - No 260 - June 2015
Science Update - No 260 - June 2015
 
Balonmano
BalonmanoBalonmano
Balonmano
 
Gaba Presentation 2010
Gaba Presentation 2010Gaba Presentation 2010
Gaba Presentation 2010
 
10 formas de mimar las imágenes de tus diapositivas
10 formas de mimar las imágenes de tus diapositivas10 formas de mimar las imágenes de tus diapositivas
10 formas de mimar las imágenes de tus diapositivas
 
KonoGes
KonoGesKonoGes
KonoGes
 
Unidad 8. estado actual de la investigacion educativa en colombia
Unidad 8. estado actual de la investigacion educativa en colombiaUnidad 8. estado actual de la investigacion educativa en colombia
Unidad 8. estado actual de la investigacion educativa en colombia
 
Img Gestion Documental
Img Gestion DocumentalImg Gestion Documental
Img Gestion Documental
 
Healtho5 supported Medical Tele Consultation Centers in Bangladesh
Healtho5 supported Medical Tele Consultation Centers in BangladeshHealtho5 supported Medical Tele Consultation Centers in Bangladesh
Healtho5 supported Medical Tele Consultation Centers in Bangladesh
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

Semantic TYPO3

  • 1. Semantic TYPO3 Develop Extensions with Semantic Web in Mind Jochen Rau @ T3CON11SF June 11, 2011
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. (c) by Benjamin Nowack, Attribution 3.0 Unported (CC BY 3.0)
  • 9. Concepts (c) by Benjamin Nowack, Attribution 3.0 Unported (CC BY 3.0)
  • 10. Implementations (c) by Benjamin Nowack, Attribution 3.0 Unported (CC BY 3.0)
  • 13. Let's make some assertions about me Jochen's is a Person. Jochen's age is 40. Jochen's name is Jochen Rau. Jochen likes TYPO3 and Wine. Jochen lives in Massachusetts.
  • 14. Let's make some assertions about me Jochen's is a Person. Jochen's age is 40. Jochen's name is Jochen Rau. Jochen likes TYPO3 and Wine. Jochen lives in Massachusetts. Subject Predicate Object
  • 15. Let's make some assertions about me Jochen's is a Person. Jochen's age is 40. Jochen's name is Jochen Rau. Jochen likes TYPO3 and Wine. Jochen lives in Massachusetts. Subject Predicate Object Triple
  • 16. Let's make some assertions about me Jochen 40 age name Jochen Rau is a likes TYPO3 likes lives in Jochen's is a Person. Person Jochen's age is 40. Wine Massachusetts Jochen's name is Jochen Rau. Jochen likes TYPO3 and Wine. Jochen lives in Massachusetts.
  • 17. Let's make some assertions about me Jochen 40 age name Jochen Rau is a likes TYPO3 likes lives in Jochen's is a Person. Person Jochen's age is 40. Wine Massachusetts Jochen's name is Jochen Rau. Jochen likes TYPO3 and Wine. TYPO3 Jochen lives in Massachusetts. license GNU General Public License description platform TYPO3 is a free and open source content management system as well as a Model–view– controller (MVC) Web PHP Application Development framework written in PHP.
  • 18. Let's make some assertions about me Jochen 40 age name Jochen Rau is a likes TYPO3 likes GNU General license lives in Public License Jochen's is a Person. Person description Jochen's age is 40. Wine Massachusetts Jochen's name is Jochen Rau. platform TYPO3 is a free and open source content Jochen likes TYPO3 and Wine. management system as Jochen lives in Massachusetts. well as a Model–view– controller (MVC) Web PHP Application Development framework written in PHP.
  • 19. Unique Names for Resources Jochen knows Sebastian likes Paris
  • 20. Unique Names for Resources <http://typoplanet.de/resource/Jochen> <http://xmlns.com/foaf/0.1/knows> <http://sebastian.kurfuerst.eu/> <http://xmlns.com/foaf/0.1/likes> <http://en.wikipedia.org/wiki/Paris_(2008_film)> <http://typoplanet.de/resource/Jochen> <http://typoplanet.de/resource/hg132k4jhjh1234t> <urn:uuid:67ecc3bd-07e2-44f4-a788-597bf9949f0c> <tel:+1-617-555-7332> <mailto:jochen.rau@typoplanet.de>
  • 21. Unique Names for Resources <http://typoplanet.de/resource/Jochen> <http://xmlns.com/foaf/0.1/knows> <http://sebastian.kurfuerst.eu/> <http://sebastian.kurfuerst.eu/> <http://xmlns.com/foaf/0.1/likes> <http://en.wikipedia.org/wiki/Paris_(2008_film)>
  • 22. Turtle Serialization of an RDF Graph <http://example.com/JR> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . <http://example.com/JR> <http://xmlns.com/foaf/0.1/age> "40" . <http://example.com/JR> <http://xmlns.com/foaf/0.1/name> "Jochen Rau" . <http://example.com/JR> <http://xmlns.com/foaf/0.1/interest> <http://dbpedia.org/resource/TYPO3> . <http://example.com/JR> <http://xmlns.com/foaf/0.1/interest> <http://dbpedia.org/resource/Wine> . <http://example.com/JR> <http://example.com/livesIn> <http://data.nytimes.com/Massachusetts> .
  • 23. Turtle Serialization of an RDF Graph @prefix ex: <http://example.org/> . @prefix dbp: <http://dbpedia.org/resource/> . @prefix nyt: <http://data.nytimes.com/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . ex:JR a foaf:Person . ex:JR foaf:age "40" . ex:JR foaf:name "Jochen Rau" . ex:JR foaf:interest dbp:TYPO3 . ex:JR foaf:interest dbp:Wine . ex:JR ex:livesIn nyt:Massachusetts .
  • 24. Turtle Syntactic sugar @prefix ex: <http://example.org/> . @prefix dbp: <http://dbpedia.org/resource/> . @prefix nyt: <http://data.nytimes.com/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . ex:JR a foaf:Person ; ex:age "40" ; ex:name "Jochen Rau" ; ex:likes dbp:TYPO3 ; ex:likes dbp:Wine ; ex:livesIn nyt:Massachusetts .
  • 25. Turtle And even more syntactic sugar @prefix ex: <http://example.org/> . @prefix dbp: <http://dbpedia.org/resource/> . @prefix nyt: <http://data.nytimes.com/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . ex:JR a foaf:Person ; ex:age "40" ; ex:name "Jochen Rau" ; ex:likes dbp:TYPO3 , dbp:Wine ; ex:livesIn nyt:Massachusetts .
  • 26. RDF at a Glance Simple, ubiquitous way of modeling data Main concepts Triples of subject, predicate, and object Unique names for resources Objects can also be literal values (with data type or language) Performant data stores (e.g. Virtuoso, AllegroGraph, BigOWLIM) Existing frameworks with rich APIs (e.g. JENA, Sesame, Erfurt) Billions of triples as Open Data available (e.g. Wikipedia, MusicBrainz) Many di erent serialization formats (e.g. RDF/XML, Turtle, N3) Makes data migration much easier
  • 27. Description Logic and Rules OWL and RIF What? Why? Knowledge is spread all over the system: Domain model, database scheme, TS con gurartion, FlexForm, TCA, documentation, Templates ... In di erent Formats: SQL, TypoScript, XML, PHP, HTML ... Using inconsistent terminology: "Template" in TYPO3? So, what to do? data and metadata in the same data structure (RDF) use well de ned languages to describe (meta)data (OWL RIF)
  • 28. Description Logic and Rules OWL and RIF Knublauch, Holger. KBeans Specification: Semantic Transparency for Components and Domain Models. Technical Report FAW-TR-01001, FAW Ulm, 2001.
  • 29. RDF in HTML Three di erent standards to markup your HTML code Microformats Microdata (part of HTML5 spec) RDFa ("RDF for attributes", W3C Recommendation) A subset of RDF Makes web pages machine readable by your favorite search engine
  • 30. RDF in HTML RDFa <div> <p> Alice Birpemswick </p> <p> Email: <a href="mailto:alice@example.com">alice@example.com</a> </p> <p> Phone: <a href="tel:+1-617-555-7332">+1 617.555.7332</a> </p> </div>
  • 31. RDF in HTML RDFa <div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/resource/alice" typeof="Person"> <p property="foaf:name"> Alice Birpemswick </p> <p> Email: <a rel="foaf:mbox" href="mailto:alice@example.com">alice@example.com</a> </p> <p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1 617.555.7332</a> </p> </div>
  • 32. RDF in HTML RDFa <div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/resource/alice" typeof="Person"> <p property="foaf:name"> Alice Birpemswick </p> <p> Email: <a rel="foaf:mbox" href="mailto:alice@example.com">alice@example.com</a> </p> <p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332">+1 617.555.7332</a> </p> </div> http://example.com/resource/alice
  • 33. RDF in HTML RDFa <div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/alice#me" rel="knows"> <ul> <li typeof="Person"> <a rel="foaf:homepage" href="http://example.com/bob" property="foaf:name">Bob</a> </li> <li typeof="Person" > <a rel="foaf:homepage" href="http://example.com/eve" property="foaf:name">Eve</a> </li> <li typeof="Person" > <a rel="foaf:homepage" href="http://example.com/manu" property="foaf:name">Manu</a> </li> </ul> </div>
  • 34. RDF in HTML RDFa <div prefix="foaf: http://xmlns.com/foaf/0.1/" about="http://example.com/alice#me" rel="knows"> <ul> <li typeof="Person"> <a rel="foaf:homepage" href="http://example.com/bob" property="foaf:name">Bob</a> </li> <li typeof="Person" > <a rel="foaf:homepage" href="http://example.com/eve" property="foaf:name">Eve</a> </li> <li typeof="Person" > <a rel="foaf:homepage" href="http://example.com/manu" property="foaf:name">Manu</a> </li> </ul> </div>
  • 35. RDF in HTML GoodRelations Vocabulary
  • 36. RDF in HTML Enable RDFa in TYPO3 # Set the doctype and add common namespaces config.doctype = xhtml+rdfa_10 config.namespaces { xml = http://www.w3.org/XML/1998/namespace xmlns = http://www.w3.org/2000/xmlns/ xsd = http://www.w3.org/2001/XMLSchema# xhv = http://www.w3.org/1999/xhtml/vocab# rdfa = http://www.w3.org/ns/rdfa# rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns# rdfs = http://www.w3.org/2000/01/rdf-schema# owl = http://www.w3.org/2002/07/owl# rif = http://www.w3.org/2007/rif# [...] dbo = http://dbpedia.org/ontology/ foaf = http://xmlns.com/foaf/0.1/ geo = http://www.w3.org/2003/01/geo/wgs84_pos# gr = http://purl.org/goodrelations/v1# cal = http://www.w3.org/2002/12/cal/ical# og = http://ogp.me/ns# v = http://rdf.data-vocabulary.org/# bibo = http://purl.org/ontology/bibo/ }
  • 37. Demo
  • 41. Querying a Graph SPARQL W3C Recommendation Graph pattern matching Similar to SQL and Turtle
  • 42. Querying a Graph Filter, Functions, Ordering ...
  • 43. Querying a Graph Custom Functions
  • 44. Querying a Graph Property Paths
  • 45. Querying a Graph Property Paths and Inference
  • 46. Querying a Graph Subqueries
  • 47. EXT:semantic SPARQL Query Administration Default namespaces (RDFa default pro le) Syntax highlighting Code indentation Content Manager
  • 48. EXT:semantic SPARQL Query Administration Default namespaces (RDFa default pro le) Syntax highlighting Code indentation Frontend and backend Content Manager
  • 49. EXT:semantic Custom Content Elements Default layouts and custom HTML template code Support for pagination (dynamic query re-writing)
  • 50. EXT:semantic Custom Content Elements Frontend Backend
  • 51. EXT:semantic Custom Content Elements Query results variables are bound to the template variables and are used as labels in a human readable form
  • 52. Demo
  • 53. Developer Query Object Model class Tx_BlogExample_Domain_Repository_PostRepository extends Tx_Extbase_Persistence_Repository { public function findByTagAndBlog($tag, Tx_BlogExample_Domain_Model_Blog $blog, $limit = 20) { $query = $this->createQuery(); return $query->matching( $query->logicalAnd( $query->equals('blog', $blog), $query->equals('tags.name', $tag) ) ) ->setOrderings(array('date' => Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING)) ->setLimit((integer)$limit) ->execute(); } public function findNext(Tx_BlogExample_Domain_Model_Post $post) { $query = $this->createQuery(); $posts = $query->matching($query->greaterThan('date', $post->getDate())) ->setOrderings(array('date' => Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING)) ->execute(); return $posts->getFirst(); } }
  • 54. Semantic TYPO3 Current Projects SPARQL Client (EXT:semantic, Jochen Rau) RDF/RDFa support (Sebastian Kurfürst, masters thesis) CMS ontology (Andreas Wolf, GSoC) Taxonomy and Categories (EXT:taxonomy, Fabien Udriot) Semantic persistence backend (EXT:semantic, Thomas Maroschik) Globally unique identi ers in v4 (EXT:identity, Thomas Maroschik) Tagging support for Editors (v4: RTE plugin, v5: Aloha)
  • 55. Semantic TYPO3 Roadmap Improve usability of SPARQL Client Transform Domain Models into RDF(a) Transform OWL Ontologies into PHP Code and Metadata Extbase Query Object Model -> SPARQL Query
  • 59. Demo
  • 60. Thanks! Twitter @jocrau Email jochen.rau@typoplanet.de Blog http://blog.typoplanet.de Talk Lunch