SlideShare une entreprise Scribd logo
1  sur  40
Die „Semantic Web
                                                                              Recommendations“ und das Jena
                                                                              Framework
                                                                                                ein Vortrag von Julian Maicher
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Gliederung

                                                                                  Das World Wide Web: Eine Bestandsaufnahme
                                                                                  Das Semantic Web: Eine Vision
                                                                                  Die „Semantic Web Recommendations“
                                                                                  Das Jena Framework
                                                                                  Praxiserfahrungen mit dem Jena Framework
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   07/03/10   3
Das Word Wide Web: Eine
                                                                              Bestandsaufnahme

                                                                               WWW: Das „Netz der Dokumente“
                                                                                      Besteht aus unzähligen vernetzten Dokumenten
                                                                                      Dokumente beinhalten Informationen


                                                                               Basiert auf (X)HTML und CSS
                                                                                      Präsentation der Informationen für den Menschen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                      Beschränkte Semantik

                                                                               Suche im WWW
                                                                                      Stichwort- oder Patternsuche




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   07/03/10   4
Das Semantic Web: Eine Vision

                                                                               Eine Vision von Tim Berners-Lee
                                                                                      „Erfinder“ des WWW
                                                                                      Vorstand und Gründer des World Wide Web Consortium


                                                                               Ziel: Das „Netz der Daten“
                                                                                      Daten auf Basis ihrer Bedeutung miteinander in Verbindung
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                       bringen
                                                                                      Daten für den Computer verständlich aufbereiten

                                                                               Hilfe bei der Umsetzung durch Empfehlungen des W3C
                                                                                                                  Semantic Web Recommendations



                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   4
Begrifflichkeiten

                                                                               Ontologien
                                                                                      Beschreibung von Objekte und ihren Beziehungen innerhalb
                                                                                       eines Universums
                                                                                      Definieren Vokabular und Regeln


                                                                               Beispiele: Friend-Of-A-Friend, The Gene Ontology
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Inferencing
                                                                                      Neues Wissen aus bestehenden Daten herleiten
                                                                                      Reasoner führen Inferencing auf Daten durch

                                                                               Beispiel: Anna ist die Frau von Paul => Paul ist der Mann
                                                                                von Anna

                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   5
Semantic Web
                                                                                                      Recommendations [1]
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   6
Semantic Web
                                                                                                      Recommendations [1]

                                                                               Unified Resource Identifier
                                                                                  Zeichenketten zur Identifizierung von
                                                                                   Internetresourcen (Dokumente,
                                                                                   Personen, ...)
                                                                                  Internationalisierung durch IRI
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   6
Semantic Web
                                                                                                      Recommendations [1]

                                                                               Unified Resource Identifier
                                                                                  Zeichenketten zur Identifizierung von
                                                                                   Internetresourcen (Dokumente,
                                                                                   Personen, ...)
                                                                                  Internationalisierung durch IRI

                                                                               Beispiel: http://../John_Doe
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   6
Semantic Web
                                                                                                      Recommendations [1]

                                                                               Unified Resource Identifier
                                                                                  Zeichenketten zur Identifizierung von
                                                                                   Internetresourcen (Dokumente,
                                                                                   Personen, ...)
                                                                                  Internationalisierung durch IRI

                                                                               Resource Description Framework
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                  RDF basiert auf XML
                                                                                  Standard für Datenaustausch
                                                                                   im Internet
                                                                                  Benutzt URIs um Resourcen
                                                                                   und Beziehungen zu benennen
                                                                                  Definiert Triple: <Subjekt> <Prädikat> <Objekt>


                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   6
Semantic Web
                                                                                                      Recommendations [1]

                                                                               Unified Resource Identifier
                                                                                  Zeichenketten zur Identifizierung von
                                                                                   Internetresourcen (Dokumente,
                                                                                   Personen, ...)
                                                                                  Internationalisierung durch IRI

                                                                               Resource Description Framework
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                  RDF basiert auf XML
                                                                                  Standard für Datenaustausch
                                                                                   im Internet
                                                                                  Benutzt URIs um Resourcen
                                                                                   und Beziehungen zu benennen
                                                                                  Definiert Triple: <Subjekt> <Prädikat> <Objekt>

                                                                               Beispiel: <http://../John_Doe> <family_name> < “Doe“>
                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   6
Semantic Web
                                                                                                       Recommendations [1]

                                                                               Unified Resource Identifier
                                                                                  Zeichenketten zur Identifizierung von
                                                                                   Internetresourcen (Dokumente,
                                                                                   Personen, ...)
                                                                                  Internationalisierung durch IRI

                                                                               Resource Description Framework
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                  RDF basiert auf XML
                                                                                  Standard für Datenaustausch
                                                                                   im Internet                          http://../John_Doe
                                                                                  Benutzt URIs um Resourcen                                                family_name

                                                                                   und Beziehungen zu benennen                                                            Doe

                                                                                  Definiert Triple: <Subjekt> <Prädikat> <Objekt>

                                                                               Beispiel: <http://../John_Doe> <family_name> < “Doe“>
                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher                       6
Semantic Web
                                                                                                      Recommendations [2]

                                                                               RDF Schema
                                                                                  Semantische Erweiterung von RDF
                                                                                  Vokabular zur hierarchischen
                                                                                   Beschreibung von Klassen und
                                                                                   Eigenschaften
                                                                                  Beschreibung von einfachen
                                                                                   Ontologien
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   7
Semantic Web
                                                                                                      Recommendations [2]

                                                                               RDF Schema
                                                                                  Semantische Erweiterung von RDF
                                                                                  Vokabular zur hierarchischen
                                                                                   Beschreibung von Klassen und
                                                                                   Eigenschaften
                                                                                  Beschreibung von einfachen
                                                                                   Ontologien
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Beispiel:
                                                                                                                           Human




                                                                                                                 Man                   Woman




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   7
Semantic Web
                                                                                                      Recommendations [2]

                                                                               RDF Schema
                                                                                  Semantische Erweiterung von RDF
                                                                                  Vokabular zur hierarchischen
                                                                                   Beschreibung von Klassen und
                                                                                   Eigenschaften
                                                                                  Beschreibung von einfachen
                                                                                   Ontologien
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Beispiel:

                                                                                                    Human




                                                                                          Man                   Woman




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   7
Semantic Web
                                                                                                      Recommendations [3]

                                                                               Web Ontology Language
                                                                                 Mehr Vokabular, mehr Semantik
                                                                                 Unter anderem:
                                                                                   • Beziehungen zwischen Klassen
                                                                                     (z.B. disjunkt, invers)
                                                                                   • Kardinalitäten (z.B. maximal eins)
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                   • Eigenschaften von Beziehungen
                                                                                     (z.B. Reflexiv, Transitiv)




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   8
Semantic Web
                                                                                                      Recommendations [3]

                                                                               Web Ontology Language
                                                                                 Mehr Vokabular, mehr Semantik
                                                                                 Unter anderem:
                                                                                   • Beziehungen zwischen Klassen
                                                                                     (z.B. disjunkt, invers)
                                                                                   • Kardinalitäten (z.B. maximal eins)
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                   • Eigenschaften von Beziehungen
                                                                                     (z.B. Reflexiv, Transitiv)

                                                                               Beispiel: Eine Frau hat maximal einen Ehemann.




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   8
Semantic Web
                                                                                                      Recommendations [3]

                                                                               Web Ontology Language
                                                                                 Mehr Vokabular, mehr Semantik
                                                                                 Unter anderem:
                                                                                   • Beziehungen zwischen Klassen
                                                                                     (z.B. disjunkt, invers)
                                                                                   • Kardinalitäten (z.B. maximal eins)
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                   • Eigenschaften von Beziehungen
                                                                                     (z.B. Reflexiv, Transitiv)

                                                                               Beispiel: Eine Frau hat maximal einen Ehemann.




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   8
Semantic Web
                                                                                                      Recommendations [4]

                                                                               SPARQL Protocol and RDF Query
                                                                                Language
                                                                                  Graph-basierte Anfragesprache für
                                                                                   RDF
                                                                                  Nachfolger mehrerer Anfragesprachen
                                                                                   (RDF Query Language, RDQL)
                                                                                  Nutzt Triple Syntax für Anfragen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                   („basic graph pattern“)




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   9
Semantic Web
                                                                                                      Recommendations [4]

                                                                               SPARQL Protocol and RDF Query
                                                                                Language
                                                                                  Graph-basierte Anfragesprache für
                                                                                   RDF
                                                                                  Nachfolger mehrerer Anfragesprachen
                                                                                   (RDF Query Language, RDQL)
                                                                                  Nutzt Triple Syntax für Anfragen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                   („basic graph pattern“)

                                                                               Beispiel: Gib Familiennamen und Telefonnummern
                                                                                aller Freunde von John Doe aus.




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   9
Semantic Web
                                                                                                      Recommendations [4]

                                                                               SPARQL Protocol and RDF Query
                                                                                Language
                                                                                  Graph-basierte Anfragesprache für
                                                                                   RDF
                                                                                  Nachfolger mehrerer Anfragesprachen
                                                                                   (RDF Query Language, RDQL)
                                                                                  Nutzt Triple Syntax für Anfragen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                   („basic graph pattern“)

                                                                               Beispiel: Gib Familiennamen und Telefonnummern
                                                                                aller Freunde von John Doe aus.




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   9
Semantic Web
                                                                                                      Recommendations [5]
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   10
Semantic Web
                                                                                                      Recommendations [5]
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   10
Semantic Web
                                                                                                      Recommendations [5]
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   10
Zwischenbilanz

                                                                                 Das World Wide Web: Eine Bestandsaufnahme
                                                                                 Das Semantic Web: Eine Vision
                                                                                 Die „Semantic Web Recommendations“
                                                                                 Das Jena Framework
                                                                                 Praxiserfahrungen mit dem Jena Framework
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   11
Das Jena Framework

                                                                               Eine Java-Implementierung der „Semantic Web
                                                                                Recommendations“
                                                                               Framework zur Entwicklung von „Semantic Web“
                                                                                Applikationen
                                                                               Führendes „Semantic Web“-Toolkit für Java-Entwickler
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Implementiert Unterstützung für
                                                                                         RDF
                                                                                         RDFS
                                                                                         OWL
                                                                                         SPARQL Query Language




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   12
Grafische Übersicht

                                                                                                                            Query

                                                                                                                                                                                 ARQ




                                                                                                                            Ontology API & Inferencing

                                                                                                                                                                           Reasoner
                                                                                       Input/Output
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                             RDF/XML
                                                                                                                            RDF API
                                                                                                                                                           subject   predicate
                                                                                              n-triples
                                                                                                                                                                                  object


                                                                                                 N3
                                                                                                                           Materialized Graphs                       Virtual Graphs


                                                                                                                                                      SQL
                                                                                                                                  in-memory                                 inferencing
                                                                                                                                                    database




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher                                   13
Datenhaltung

                                                                               In-memory: Datenhaltung im Speicher
                                                                                     Keine persistenten Daten

                                                                               Persistente Datenhaltung
                                                                                     TDB
                                                                                            • pure Java engine
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                            • unterstützt keine Transaktionen
                                                                                            • manuelles Setzen von read und write locks
                                                                                     SDB
                                                                                            • basiert auf konventionellen SQL Datenbanken
                                                                                            • Vorteil: vorhanden Tools für Load Balancing, Sicherheit,
                                                                                              Clustering, Backups etc. können verwendet werden




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   14
RDF API [1]

                                                                               Implementierung der abstrakten Syntax von RDF
                                                                                   RDF Spezifikation              Repräsentation in Jena
                                                                                   RDF Graph                      Model
                                                                                   Resource                       Resource
                                                                                   Eigenschaft                    Property
                                                                                   Triple                         Statement
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Grundlegende Funktionalität zur Navigation im RDF Graph
                                                                                  z.B. model.listStatements(S, P, O)




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   15
RDF API [2]

                                                                               Beispiel:

                                                                                                                       http://../John_Doe
                                                                                                                                                   family_name

                                                                                                                                                                 Doe
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher               16
RDF API [2]

                                                                               Beispiel:

                                                                                                                       http://../John_Doe
                                                                                                                                                   family_name

                                                                                                                                                                 Doe
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher               16
Input/Output

                                                                               Im- und Export Funktionalität für RDF-Graphen

                                                                               Export über Writer
                                                                                     RDF/XML
                                                                                            • „Dumb“ Writer (default)
                                                                                            • „PrettyWriter“ (RDF/XML-ABBREV Syntax)
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                     Writer für N-TRIPLE und Notation 3 (N3)

                                                                               Import über Reader
                                                                                     RDF/XML
                                                                                            • RDFReader & Another RDF Parser (ARP)
                                                                                     Reader für N-TRIPLE und N3


                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   17
Ontology API & Inferencing [1]

                                                                               Ontology API
                                                                                     OntModel repräsentiert Ontologie
                                                                                     Ontologien können gelesen werden
                                                                                            • ontModel.read(URI)
                                                                                     Unterstützt nicht bei der Erstellung von Ontologien
                                                                                            • dafür z.B. Protege (http://protege.stanford.edu)
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Inferencing
                                                                                     InfModel repräsentiert Graph mit inferiertem Wissen
                                                                                     Reasoner (OWL Reasoner, RDFS Reasoner, ..)
                                                                                            • Arbeitet auf RDF Graph mit Regeln einer bestimmten Ontologie
                                                                                            • Erzeugt InfModel durch inferieren von neuem Wissen


                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher     18
Ontology API & Inferencing [2]

                                                                               Beispiel:
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   19
Query

                                                                               ARQ
                                                                                     Jena Implementierung der SPARQL Query Language
                                                                                     Wichtige Klassen
                                                                                       • Query und QueryFactory
                                                                                       • QueryExecution und QueryExecutionFactory
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   20
Query

                                                                               ARQ
                                                                                     Jena Implementierung der SPARQL Query Language
                                                                                     Wichtige Klassen
                                                                                       • Query und QueryFactory
                                                                                       • QueryExecution und QueryExecutionFactory
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Beispiel: Gib Familiennamen und Telefonnummern
                                                                                aller Freunde von John Doe aus.




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   20
Query

                                                                               ARQ
                                                                                     Jena Implementierung der SPARQL Query Language
                                                                                     Wichtige Klassen
                                                                                       • Query und QueryFactory
                                                                                       • QueryExecution und QueryExecutionFactory
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Beispiel: Gib Familiennamen und Telefonnummern
                                                                                aller Freunde von John Doe aus.




                                                                              Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   20
Praxiserfahrungen

                                                                               Einsatz in der knowAAN Projektgruppe an der Universität
                                                                                Paderborn (http://ddi.uni-paderborn.de/lehre/sommersemester-2010/pg-knowaan.html)
                                                                                      TDB schneller als SDB
                                                                                      Aber: Erhebliche Performanceprobleme bei großen
                                                                                       Datenmengen
                                                                                             • Inferencing bei > 200.000 Ressourcen und > 3 Millionen Tripel
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher           21
Zusammenfassung

                                                                                                               Die „Semantic Web Recommendations“
                                                                                                                       Theoretische Spezifikation
                                                                                                                       Ansatz zur Standardisierung des „Semantic
                                                                                                                        Web“
                                                                                                                       Viele „Active Groups“
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                                                               Das Jena Framework
                                                                                                                       Implementierung der „Semantic Web
                                                                                                                        Recommendations“
                                                                                                                       Führendes „Semantic Web“-Toolkit für Java
                                                                                                                        Entwickler
                                                                                                                       Guter Ansatz, aber: Probleme mit großen
                                                                                                                        Datenmengen


                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher           22
Danke für Ihre Aufmerksamkeit
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher   23
Danke für Ihre Aufmerksamkeit




                                                                                                                         Fragen
                                                                                                                                                            ??
                                                                                                                                                             ?
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn




                                                                               Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher        23

Contenu connexe

En vedette

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

En vedette (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Semanticwebjena 100721154646-phpapp02(2)

  • 1. Die „Semantic Web Recommendations“ und das Jena Framework ein Vortrag von Julian Maicher © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
  • 2. Gliederung  Das World Wide Web: Eine Bestandsaufnahme  Das Semantic Web: Eine Vision  Die „Semantic Web Recommendations“  Das Jena Framework  Praxiserfahrungen mit dem Jena Framework © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 07/03/10 3
  • 3. Das Word Wide Web: Eine Bestandsaufnahme  WWW: Das „Netz der Dokumente“  Besteht aus unzähligen vernetzten Dokumenten  Dokumente beinhalten Informationen  Basiert auf (X)HTML und CSS  Präsentation der Informationen für den Menschen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Beschränkte Semantik  Suche im WWW  Stichwort- oder Patternsuche Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 07/03/10 4
  • 4. Das Semantic Web: Eine Vision  Eine Vision von Tim Berners-Lee  „Erfinder“ des WWW  Vorstand und Gründer des World Wide Web Consortium  Ziel: Das „Netz der Daten“  Daten auf Basis ihrer Bedeutung miteinander in Verbindung © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn bringen  Daten für den Computer verständlich aufbereiten  Hilfe bei der Umsetzung durch Empfehlungen des W3C  Semantic Web Recommendations Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 4
  • 5. Begrifflichkeiten  Ontologien  Beschreibung von Objekte und ihren Beziehungen innerhalb eines Universums  Definieren Vokabular und Regeln  Beispiele: Friend-Of-A-Friend, The Gene Ontology © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Inferencing  Neues Wissen aus bestehenden Daten herleiten  Reasoner führen Inferencing auf Daten durch  Beispiel: Anna ist die Frau von Paul => Paul ist der Mann von Anna Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 5
  • 6. Semantic Web Recommendations [1] © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 6
  • 7. Semantic Web Recommendations [1]  Unified Resource Identifier  Zeichenketten zur Identifizierung von Internetresourcen (Dokumente, Personen, ...)  Internationalisierung durch IRI © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 6
  • 8. Semantic Web Recommendations [1]  Unified Resource Identifier  Zeichenketten zur Identifizierung von Internetresourcen (Dokumente, Personen, ...)  Internationalisierung durch IRI  Beispiel: http://../John_Doe © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 6
  • 9. Semantic Web Recommendations [1]  Unified Resource Identifier  Zeichenketten zur Identifizierung von Internetresourcen (Dokumente, Personen, ...)  Internationalisierung durch IRI  Resource Description Framework © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  RDF basiert auf XML  Standard für Datenaustausch im Internet  Benutzt URIs um Resourcen und Beziehungen zu benennen  Definiert Triple: <Subjekt> <Prädikat> <Objekt> Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 6
  • 10. Semantic Web Recommendations [1]  Unified Resource Identifier  Zeichenketten zur Identifizierung von Internetresourcen (Dokumente, Personen, ...)  Internationalisierung durch IRI  Resource Description Framework © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  RDF basiert auf XML  Standard für Datenaustausch im Internet  Benutzt URIs um Resourcen und Beziehungen zu benennen  Definiert Triple: <Subjekt> <Prädikat> <Objekt>  Beispiel: <http://../John_Doe> <family_name> < “Doe“> Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 6
  • 11. Semantic Web Recommendations [1]  Unified Resource Identifier  Zeichenketten zur Identifizierung von Internetresourcen (Dokumente, Personen, ...)  Internationalisierung durch IRI  Resource Description Framework © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  RDF basiert auf XML  Standard für Datenaustausch im Internet http://../John_Doe  Benutzt URIs um Resourcen family_name und Beziehungen zu benennen Doe  Definiert Triple: <Subjekt> <Prädikat> <Objekt>  Beispiel: <http://../John_Doe> <family_name> < “Doe“> Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 6
  • 12. Semantic Web Recommendations [2]  RDF Schema  Semantische Erweiterung von RDF  Vokabular zur hierarchischen Beschreibung von Klassen und Eigenschaften  Beschreibung von einfachen Ontologien © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 7
  • 13. Semantic Web Recommendations [2]  RDF Schema  Semantische Erweiterung von RDF  Vokabular zur hierarchischen Beschreibung von Klassen und Eigenschaften  Beschreibung von einfachen Ontologien © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Beispiel: Human Man Woman Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 7
  • 14. Semantic Web Recommendations [2]  RDF Schema  Semantische Erweiterung von RDF  Vokabular zur hierarchischen Beschreibung von Klassen und Eigenschaften  Beschreibung von einfachen Ontologien © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Beispiel: Human Man Woman Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 7
  • 15. Semantic Web Recommendations [3]  Web Ontology Language  Mehr Vokabular, mehr Semantik  Unter anderem: • Beziehungen zwischen Klassen (z.B. disjunkt, invers) • Kardinalitäten (z.B. maximal eins) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn • Eigenschaften von Beziehungen (z.B. Reflexiv, Transitiv) Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 8
  • 16. Semantic Web Recommendations [3]  Web Ontology Language  Mehr Vokabular, mehr Semantik  Unter anderem: • Beziehungen zwischen Klassen (z.B. disjunkt, invers) • Kardinalitäten (z.B. maximal eins) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn • Eigenschaften von Beziehungen (z.B. Reflexiv, Transitiv)  Beispiel: Eine Frau hat maximal einen Ehemann. Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 8
  • 17. Semantic Web Recommendations [3]  Web Ontology Language  Mehr Vokabular, mehr Semantik  Unter anderem: • Beziehungen zwischen Klassen (z.B. disjunkt, invers) • Kardinalitäten (z.B. maximal eins) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn • Eigenschaften von Beziehungen (z.B. Reflexiv, Transitiv)  Beispiel: Eine Frau hat maximal einen Ehemann. Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 8
  • 18. Semantic Web Recommendations [4]  SPARQL Protocol and RDF Query Language  Graph-basierte Anfragesprache für RDF  Nachfolger mehrerer Anfragesprachen (RDF Query Language, RDQL)  Nutzt Triple Syntax für Anfragen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn („basic graph pattern“) Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 9
  • 19. Semantic Web Recommendations [4]  SPARQL Protocol and RDF Query Language  Graph-basierte Anfragesprache für RDF  Nachfolger mehrerer Anfragesprachen (RDF Query Language, RDQL)  Nutzt Triple Syntax für Anfragen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn („basic graph pattern“)  Beispiel: Gib Familiennamen und Telefonnummern aller Freunde von John Doe aus. Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 9
  • 20. Semantic Web Recommendations [4]  SPARQL Protocol and RDF Query Language  Graph-basierte Anfragesprache für RDF  Nachfolger mehrerer Anfragesprachen (RDF Query Language, RDQL)  Nutzt Triple Syntax für Anfragen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn („basic graph pattern“)  Beispiel: Gib Familiennamen und Telefonnummern aller Freunde von John Doe aus. Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 9
  • 21. Semantic Web Recommendations [5] © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 10
  • 22. Semantic Web Recommendations [5] © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 10
  • 23. Semantic Web Recommendations [5] © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 10
  • 24. Zwischenbilanz  Das World Wide Web: Eine Bestandsaufnahme  Das Semantic Web: Eine Vision  Die „Semantic Web Recommendations“  Das Jena Framework  Praxiserfahrungen mit dem Jena Framework © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 11
  • 25. Das Jena Framework  Eine Java-Implementierung der „Semantic Web Recommendations“  Framework zur Entwicklung von „Semantic Web“ Applikationen  Führendes „Semantic Web“-Toolkit für Java-Entwickler © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Implementiert Unterstützung für  RDF  RDFS  OWL  SPARQL Query Language Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 12
  • 26. Grafische Übersicht Query ARQ Ontology API & Inferencing Reasoner Input/Output © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn RDF/XML RDF API subject predicate n-triples object N3 Materialized Graphs Virtual Graphs SQL in-memory inferencing database Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 13
  • 27. Datenhaltung  In-memory: Datenhaltung im Speicher  Keine persistenten Daten  Persistente Datenhaltung  TDB • pure Java engine © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn • unterstützt keine Transaktionen • manuelles Setzen von read und write locks  SDB • basiert auf konventionellen SQL Datenbanken • Vorteil: vorhanden Tools für Load Balancing, Sicherheit, Clustering, Backups etc. können verwendet werden Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 14
  • 28. RDF API [1]  Implementierung der abstrakten Syntax von RDF RDF Spezifikation Repräsentation in Jena RDF Graph Model Resource Resource Eigenschaft Property Triple Statement © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Grundlegende Funktionalität zur Navigation im RDF Graph z.B. model.listStatements(S, P, O) Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 15
  • 29. RDF API [2]  Beispiel: http://../John_Doe family_name Doe © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 16
  • 30. RDF API [2]  Beispiel: http://../John_Doe family_name Doe © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 16
  • 31. Input/Output  Im- und Export Funktionalität für RDF-Graphen  Export über Writer  RDF/XML • „Dumb“ Writer (default) • „PrettyWriter“ (RDF/XML-ABBREV Syntax) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Writer für N-TRIPLE und Notation 3 (N3)  Import über Reader  RDF/XML • RDFReader & Another RDF Parser (ARP)  Reader für N-TRIPLE und N3 Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 17
  • 32. Ontology API & Inferencing [1]  Ontology API  OntModel repräsentiert Ontologie  Ontologien können gelesen werden • ontModel.read(URI)  Unterstützt nicht bei der Erstellung von Ontologien • dafür z.B. Protege (http://protege.stanford.edu) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Inferencing  InfModel repräsentiert Graph mit inferiertem Wissen  Reasoner (OWL Reasoner, RDFS Reasoner, ..) • Arbeitet auf RDF Graph mit Regeln einer bestimmten Ontologie • Erzeugt InfModel durch inferieren von neuem Wissen Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 18
  • 33. Ontology API & Inferencing [2]  Beispiel: © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 19
  • 34. Query  ARQ  Jena Implementierung der SPARQL Query Language  Wichtige Klassen • Query und QueryFactory • QueryExecution und QueryExecutionFactory © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 20
  • 35. Query  ARQ  Jena Implementierung der SPARQL Query Language  Wichtige Klassen • Query und QueryFactory • QueryExecution und QueryExecutionFactory © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Beispiel: Gib Familiennamen und Telefonnummern aller Freunde von John Doe aus. Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 20
  • 36. Query  ARQ  Jena Implementierung der SPARQL Query Language  Wichtige Klassen • Query und QueryFactory • QueryExecution und QueryExecutionFactory © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Beispiel: Gib Familiennamen und Telefonnummern aller Freunde von John Doe aus. Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 20
  • 37. Praxiserfahrungen  Einsatz in der knowAAN Projektgruppe an der Universität Paderborn (http://ddi.uni-paderborn.de/lehre/sommersemester-2010/pg-knowaan.html)  TDB schneller als SDB  Aber: Erhebliche Performanceprobleme bei großen Datenmengen • Inferencing bei > 200.000 Ressourcen und > 3 Millionen Tripel © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 21
  • 38. Zusammenfassung  Die „Semantic Web Recommendations“  Theoretische Spezifikation  Ansatz zur Standardisierung des „Semantic Web“  Viele „Active Groups“ © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn  Das Jena Framework  Implementierung der „Semantic Web Recommendations“  Führendes „Semantic Web“-Toolkit für Java Entwickler  Guter Ansatz, aber: Probleme mit großen Datenmengen Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 22
  • 39. Danke für Ihre Aufmerksamkeit © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 23
  • 40. Danke für Ihre Aufmerksamkeit Fragen ?? ? © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Die „Semantic Web Recommendations“ und das Jena Framework - Julian Maicher 23

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n