SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
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

Más contenido relacionado

Destacado

Presentación donator 61113
Presentación donator 61113Presentación donator 61113
Presentación donator 61113La Gente De Tom
 
Fed exsocialmediastudy findingsreport_final
Fed exsocialmediastudy findingsreport_finalFed exsocialmediastudy findingsreport_final
Fed exsocialmediastudy findingsreport_finalDr. 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 CiviCRMdggreenberg
 
Lean it and lean software factory
Lean it and lean software factoryLean it and lean software factory
Lean it and lean software factoryDominique LAPERE
 
M Odelo Eoa
M Odelo EoaM Odelo Eoa
M Odelo EoaDhaliaP
 
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; competenciak4rol1n4
 
Fotos dias de campo
Fotos dias de campoFotos dias de campo
Fotos dias de campoMariguLopez
 
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 2015DOILibrary1151
 
Gaba Presentation 2010
Gaba Presentation 2010Gaba Presentation 2010
Gaba Presentation 2010Cornelia 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 diapositivasCarles Caño Valls
 
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 DocumentalSerikat
 
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 BangladeshHealtho5 Solutions
 

Destacado (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
 

Último

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 WorkerThousandEyes
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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 Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
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 2024Rafal Los
 
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...Igalia
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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 2024Results
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Último (20)

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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
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...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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