SlideShare une entreprise Scribd logo
1  sur  39
"Golden Delicious"
                                                                                                                           "Elstar"




                                                                                                rdfs:label




                                                                                                                              el
        "Conference"




                                                                                                                            :lab
                                                                                         bot:GoldenDelicious




                                                                                                                           rdfs
                                              "Gala"                                                                                                     "Fuji"
                                                                   rdfs:l
                    el




                                                                         abel                                      bot:Elstar
                :lab




                                                                                bot:Gala
                                                                                                                                                        el
            rdfs




                                                                                                                                                    b
                                                                                                                                                :la                          "any edible part of a plant with a sweet flavor"
                                                                   bot:Braeburn                                                            fs
                                                                                                bot:Apple                                rd
Conference                                                                                                                       bot:Fuji
                                                               l
                                                        labe
                                                rdfs:




                                                                                                                                                                                                        t
                                                                                                             rdf




                                                                                                                                                                                                      men
                                 "Braeburn"                                                                                                              "Fig"




                                                                                                              s:la




                                                                                                                                                                                                    :com
                                                                                                                  be
                                                                                                                                                                                                                                          "Fruit"




                                                                                                                   l




                                                                                                                                                                rdfs:label




                                                                                                                                                                                                 rdfs
                        "Pear"                                                                                         "Apple"                                                                                                    l
                                                                                                                                                                                                                       :   labe
                                                                                                                                                                                                                  rdfs
                                                                                                                                                                                             cul:Fruit

           el                                                                                                                                       bot:Fig
                                                                                                                                                                                                                                                        "Pommegranate"
      l ab
   s:
df                                                                                                                                                                                                                                         :label
                                                                                                                                                                                                                                      rdfs
                                                                       bot:pomaceousFruit                                             bot:accessoryFruit
                                                                                                                                                                                                bot:Pommegranate
                                                                                                                                                                                                                                                                   "Structure of
                                                                                 label




                                                                                                                                                 el
                                                                                                                                              ab
hinese Pear"                                                                                                                                                                                                                  "Fruit"




                                                                                                                                          s:l
                                                                                rdfs:




                                                                                                                                         rdf
                                                                                                                                                                                                                                                                      el
                                                                                                                                                                                                                :lab
                                                                                                                                                                                                                    el                                             lab
                                                                                                                                                                                                        rdfs                                                  rdfs:
                             "    #"                       "Pomaceous Fruit"                                            "Accessory Fruit"                                               bot:Fruit
                                                                                                                                                                                                    bo                bot:PlantStructure
                                                                                                                                              bot:Strawberry                                          t:c
                        el                                                                                                                                                                                 on
                     ab                                                                                                                                                                                      ta
                    l                                                                                                                                                                                           ins                                                        bot:N




                                                                                                                                                                                                                                                 bo
               :
            fs




                                                                                                                                                                                        t




                                                                                                                                                                                                                                                  t:p
    rd
                                                                                                                                                             el




                                                                                                                                                                                        en




                                                                                                                                                                                                                                                      ar
                                                                                                                                                         :lab




                        Semantic Web                                                                                                                                                mm




                                                                                                                                                                                                                                                         tO
gkeum
                                                                                                                                                       s




                                                                                                                                                                                                                                                         f
                                                                                                                                                                                  :co
                                                                                                                                                   rdf



                                                                                                                                                                                                                              :Seed

                                                                                                                                                                                    s
 rd
                                                                                                                                                                                rdf
    fs:                                                                                                                                                                                                                                                        bot:Plant
       la                                                                                                                          "Strawberry"
          be
                l

                                                                                                                                                                                       DON WILLEMS

                        RDF and Inferencing
                             "!""                                                                                                                                                                                                                                            bo
                                                                                                                                          INTELLIGENT SYSTEMS ONTOLOGY LUNCH MEETING JUNE 14TH 2011
                                                                                                                           "the ovary of a seed-bearing plant"
                                                                                                                                                            WAGENINGEN UR/FOOD & BIOBASEDtOf
                                                                                                                                                                                      :par
                                                                                                                                                                                           RESEARCH
                                                                                                                                                                                                                                                  bot
                                                                                                                                                                                                     bot:Tomato
based on:
Chapter 5 - RDF and Inferencing
Semantic Web for the Working Ontologist
Dean Allemang and Jim Hendler
ISBN 978-0-12-373556-0
Making Data Smarter

In the semantic web we have an integrated and
distributed representation of data

Modeling is needed to make sense of this network
of data



But how can a model help us make sense of this
network of data?
Example
                                                   bot:Fruit    cul:Fruit



Suppose you find RDF
data concerning                                     bot:accessoryFruit


bot:Kosui

How would you know                                  bot:pomaceousFruit



that Kosui is a type of
fruit?                                                     bot:Pear




                                        bot:EuropeanPear                    bot:ChinesePear




 bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle   bot:Kosui   bot:Shinko   bot:Whangkeum
Example: Query
Solution 1: Leverage the power of the query:
SELECT ?super WHERE {{
    bot:Kosui rdfs:subClassOf ?super.
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf ?super]]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf [rdfs:subClassOf ?super]]]].
  } ...
}
Example: Query
Solution 1: Leverage the power of the query:
SELECT ?super WHERE {{
    bot:Kosui rdfs:subClassOf ?super. ---> bot:ChinesePear
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf ?super]]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf [rdfs:subClassOf ?super]]]].
  } ...
}
Example: Query
Solution 1: Leverage the power of the query:
SELECT ?super WHERE {{
    bot:Kosui rdfs:subClassOf ?super.
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].---> bot:Pear
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf ?super]]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf [rdfs:subClassOf ?super]]]].
  } ...
}
Example: Query
Solution 1: Leverage the power of the query:
SELECT ?super WHERE {{
    bot:Kosui rdfs:subClassOf ?super.
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]].
  } UNION {                            ---> bot:pomaceousFruit
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf ?super]]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf [rdfs:subClassOf ?super]]]].
  } ...
}
Example: Query
Solution 1: Leverage the power of the query:
SELECT ?super WHERE {{
    bot:Kosui rdfs:subClassOf ?super.
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf ?super]]].
  } UNION {
                                     ---> bot:accessoryFruit
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf [rdfs:subClassOf ?super]]]].
  } ...
}
Example: Query
Solution 1: Leverage the power of the query:
SELECT ?super WHERE {{
    bot:Kosui rdfs:subClassOf ?super.
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf ?super]]].
  } UNION {
    bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf
      [rdfs:subClassOf [rdfs:subClassOf ?super]]]].
  } ...
}
                                  ---> bot:Fruit
                                  ---> cul:Fruit
Example: Inferencing

Solution 2: Inferencing
                               IF
IF                               ?A rdfs:subClassOf ?B.
  ?A rdfs:subClassOf ?super.   AND
AND                              ?B rdfs:subClassOf ?C.
  ?x rdf:type ?A.              THEN
THEN                             ?A rdfs:subClassOf ?C.
  ?x rdf:type ?super.
                               subclass-propagation
type-propagation rule
                               rule
Example: Inferencing
                                                   bot:Fruit    cul:Fruit



  IF
    ?A rdfs:subClassOf ?B.
                                                    bot:accessoryFruit
  AND
    ?B rdfs:subClassOf ?C.
  THEN
    ?A rdfs:subClassOf ?C.
                                                    bot:pomaceousFruit




                                                          bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Example: Inferencing
                                                   bot:Fruit    cul:Fruit



  IF
    ?A rdfs:subClassOf ?B.
                                                    bot:accessoryFruit
  AND
    ?B rdfs:subClassOf ?C.
  THEN
    ?A rdfs:subClassOf ?C.
                                                    bot:pomaceousFruit




                                                          bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Example: Inferencing
                                                   bot:Fruit    cul:Fruit



  IF
    ?A rdfs:subClassOf ?B.
                                                    bot:accessoryFruit
  AND
    ?B rdfs:subClassOf ?C.
  THEN
    ?A rdfs:subClassOf ?C.
                                                    bot:pomaceousFruit




                                                          bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Example: Inferencing
                                                   bot:Fruit    cul:Fruit



  IF
    ?A rdfs:subClassOf ?B.
                                                    bot:accessoryFruit
  AND
    ?B rdfs:subClassOf ?C.
  THEN
    ?A rdfs:subClassOf ?C.
                                                    bot:pomaceousFruit




                                                          bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Example: Inferencing
                                                   bot:Fruit    cul:Fruit



  IF
    ?A rdfs:subClassOf ?B.
  AND                                               bot:accessoryFruit

    ?B rdfs:subClassOf ?C.
  THEN
    ?A rdfs:subClassOf ?C.
                                                    bot:pomaceousFruit




                                                          bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Example: Inferencing
                                                   bot:Fruit    cul:Fruit



  IF
    ?A rdfs:subClassOf ?B.
  AND                                               bot:accessoryFruit

    ?B rdfs:subClassOf ?C.
  THEN
    ?A rdfs:subClassOf ?C.
                                                    bot:pomaceousFruit




                                                          bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Example: Inferencing
                                                   bot:Fruit    cul:Fruit




  How would you know                                bot:accessoryFruit

  that Kosui is a type of
  fruit?
                                                    bot:pomaceousFruit


  Kosui is a subclass of
  Fruit                                                   bot:Pear




                                       bot:EuropeanPear                     bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle    bot:Kosui bot:Shinko   bot:Whangkeum
Inferencing
                                                  bot:Fruit    cul:Fruit




                                                   bot:accessoryFruit


  Problem: Possible
  explosion of the                                 bot:pomaceousFruit

  number of triples

                                                          bot:Pear




                                       bot:EuropeanPear                    bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle   bot:Kosui   bot:Shinko   bot:Whangkeum
Inferencing:
        asserted vs. inferred Triples
                                                  bot:Fruit    cul:Fruit




                                                   bot:accessoryFruit



  Asserted Triples
                                                   bot:pomaceousFruit
  Inferred Triples

                                                          bot:Pear




                                       bot:EuropeanPear                    bot:ChinesePear




bot:Conference   bot:DoyenneDuComice   bot:BlakesPride    bot:Forelle   bot:Kosui   bot:Shinko   bot:Whangkeum
Inferencing:
   asserted vs. inferred Triples


                   Think of inferencing and querying
Asserted Triples   as separate processes

Inferred Triples   1. Use inference rules to find all
                      inferred triples using the
                      asserted triples as a conditional

                   2. Run SPARQL query over
                      asserted and inferred triples
Inferencing:
when does inferencing happen?
Out of range of the RDFS and OWL definitions

Depends on the implementation of the inference
engine

• As soon as a conditional pattern is identified,
  inference happens and inferred triples are
  stored in the same RDF store --> explosion
  risk

• Never store inferred triples. Inference only
  happens in response to a query --> duplicate
  inference work
Inferencing:
change management

One problem (if inferred triples are stored) is
change management.

• What happens when a data source changes
  • A triple is added --> inferencing
  • A triple is removed/changed -->
      • Which inferred triples need to be
        removed?
Example:
    change management


                                    cul:Ingredient




State of triple store
before inference        bot:Fruit                    cul:Vegetable




                                      bot:Tomato
Example:
change management


                               cul:Ingredient
Apply subclass-
propagation rule

                   bot:Fruit                    cul:Vegetable




                                 bot:Tomato
Example:
    change management


                                    cul:Ingredient
Apply subclass-
propagation rule

Resulting (inferred)
triple already exists   bot:Fruit                    cul:Vegetable

and is not added
again

                                      bot:Tomato
Example:
    change management


                                    cul:Ingredient




State of triple store
after inference         bot:Fruit                    cul:Vegetable




                                      bot:Tomato
Example:
     change management


                                                  cul:Ingredient
Remove erroneous
triple
(not all Fruits (in a botanical
                                              X
sense) are ingredients (in a
                                  bot:Fruit                        cul:Vegetable
culinary sense).




                                                    bot:Tomato
Example:
   change management


                                  cul:Ingredient
Remove triples that
were inferred as a
result of the
existence of the
erroneous triple.
                      bot:Fruit
                                       X           cul:Vegetable




                                    bot:Tomato
Example:
    change management

State after triple                   cul:Ingredient
removal

Problem: The
inferred triple should
not have been            bot:Fruit                    cul:Vegetable

removed because it
could have been
inferred using
another set of
                                       bot:Tomato
conditionals
Example:
    change management

State after triple                   cul:Ingredient
removal

Problem: The
inferred triple should
not have been            bot:Fruit                    cul:Vegetable

removed because it
could have been
inferred using
another set of
                                       bot:Tomato
conditionals
Example:
    change management

Desired state after
triple removal                        cul:Ingredient



Two solutions:
1. Very complex
   inference and          bot:Fruit                    cul:Vegetable

   change
   management

2. Remove all inferred
   triples and re-infer                 bot:Tomato
   everything
Inferencing:
 forward vs. backward chaining

Until now we used forward chaining as inference
method.

1. Find all existing triples that can be used as
   condition (the IF part) in the inference rule.

2. Add a new triple specified in the result (THEN)
   part of the inference rule.

This inference method is mostly used after (a) new
fact(s) are added to the triple store.
Inferencing:
 forward vs. backward chaining

Backward chaining works the other way around.

1. Find all triples that can be seen as a result
   (THEN part) of an inference rule.

               cul:Ingredient


                                                IF
                                                  ?A rdfs:subClassOf ?B.
                                                AND
   bot:Fruit                    cul:Vegetable
                                                  ?B rdfs:subClassOf ?C.
                                                THEN
                                                  ?A rdfs:subClassOf ?C.

                 bot:Tomato
Inferencing:
 forward vs. backward chaining

Backward chaining works the other way around.

1. Find all triples that can be seen as a result
   (THEN part) of an inference rule.

               cul:Ingredient


                                                IF
                                                  ?A rdfs:subClassOf ?B.
                                                AND
   bot:Fruit                    cul:Vegetable
                                                  ?B rdfs:subClassOf ?C.
                                                THEN
                                                  ?A rdfs:subClassOf ?C.

                 bot:Tomato
Inferencing:
       forward vs. backward chaining

   Backward chaining works the other way around.

   2. If the triple(s) in the condition do not yet exist
      try to fulfill the condition by other means (ask
      the user)
                                  Is cul:Vegetable          Is Fruit
                                     a subclass           a subclass
            cul:Ingredient                                                      cul:Ingredient
                                 of cul:Ingredient?   of cul:Ingredient?

                             ?                                              ?
bot:Fruit                    cul:Vegetable                      bot:Fruit                        cul:Vegetable




              bot:Tomato                                                          bot:Tomato
Inferencing:
  forward vs. backward chaining

Backward chaining works the other way around.

3. If the condition is fulfilled add the inferred triple
   (defined in the condition) to the triple store.

                 cul:Ingredient




                NO                YES
    bot:Fruit                       cul:Vegetable




                     bot:Tomato
Conclusion
• We want to be able to write a single query that
  can fetch related data from all integrated data
  sources.

• RDF provides a consistent way to represent data
  so that information from multiple sources can
  be brought together.

• Information integration is achieved by invoking
  inference before or during the query process.
Thank you!

Contenu connexe

En vedette

Being seen by major clients online (genericlicensing.com)
Being seen by major clients online (genericlicensing.com)Being seen by major clients online (genericlicensing.com)
Being seen by major clients online (genericlicensing.com)Genericlicensing.com
 
I believe vod showcase
I believe vod showcaseI believe vod showcase
I believe vod showcaseibelievedublin
 
тест булгаа
тест булгаатест булгаа
тест булгааsaraiberh
 
Trender
TrenderTrender
TrenderKElnes
 
Ancient egypt jazmine
Ancient egypt jazmineAncient egypt jazmine
Ancient egypt jazminejazzyd123456
 
המדריך למאבק במאהל
המדריך למאבק במאהלהמדריך למאבק במאהל
המדריך למאבק במאהלacri009
 
De facto States a World Report (2011)
De facto States a World Report (2011)De facto States a World Report (2011)
De facto States a World Report (2011)IGADI
 
Rak l&t conf sl
Rak l&t conf slRak l&t conf sl
Rak l&t conf slrogerspaul
 
Il lupo cecoslovacco
Il lupo cecoslovaccoIl lupo cecoslovacco
Il lupo cecoslovaccolaurany2006
 
IAF137 nº6dixital
IAF137 nº6dixitalIAF137 nº6dixital
IAF137 nº6dixitalIGADI
 
Virtual fieldtrips
Virtual fieldtripsVirtual fieldtrips
Virtual fieldtripsaelkins3610
 
Strategic generic portfolio selection may 12th 2010
Strategic generic portfolio selection may 12th 2010Strategic generic portfolio selection may 12th 2010
Strategic generic portfolio selection may 12th 2010Genericlicensing.com
 
Our year book
Our year bookOur year book
Our year bookLokiC
 
354 ,353 '
354 ,353 '354 ,353 '
354 ,353 'acri009
 

En vedette (20)

Being seen by major clients online (genericlicensing.com)
Being seen by major clients online (genericlicensing.com)Being seen by major clients online (genericlicensing.com)
Being seen by major clients online (genericlicensing.com)
 
I believe vod showcase
I believe vod showcaseI believe vod showcase
I believe vod showcase
 
тест булгаа
тест булгаатест булгаа
тест булгаа
 
Portrait Photography
Portrait PhotographyPortrait Photography
Portrait Photography
 
Trender
TrenderTrender
Trender
 
Ancient egypt jazmine
Ancient egypt jazmineAncient egypt jazmine
Ancient egypt jazmine
 
המדריך למאבק במאהל
המדריך למאבק במאהלהמדריך למאבק במאהל
המדריך למאבק במאהל
 
De facto States a World Report (2011)
De facto States a World Report (2011)De facto States a World Report (2011)
De facto States a World Report (2011)
 
Sam pres
Sam presSam pres
Sam pres
 
Rak l&t conf sl
Rak l&t conf slRak l&t conf sl
Rak l&t conf sl
 
Il lupo cecoslovacco
Il lupo cecoslovaccoIl lupo cecoslovacco
Il lupo cecoslovacco
 
Sosiaalinen media ja markkinointi
Sosiaalinen media ja markkinointiSosiaalinen media ja markkinointi
Sosiaalinen media ja markkinointi
 
IAF137 nº6dixital
IAF137 nº6dixitalIAF137 nº6dixital
IAF137 nº6dixital
 
Bord na Mona
Bord na MonaBord na Mona
Bord na Mona
 
Group presentation1
Group presentation1Group presentation1
Group presentation1
 
Virtual fieldtrips
Virtual fieldtripsVirtual fieldtrips
Virtual fieldtrips
 
Hamid0786[1]
Hamid0786[1]Hamid0786[1]
Hamid0786[1]
 
Strategic generic portfolio selection may 12th 2010
Strategic generic portfolio selection may 12th 2010Strategic generic portfolio selection may 12th 2010
Strategic generic portfolio selection may 12th 2010
 
Our year book
Our year bookOur year book
Our year book
 
354 ,353 '
354 ,353 '354 ,353 '
354 ,353 '
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 

Semantic web rdf and inferencing

  • 1. "Golden Delicious" "Elstar" rdfs:label el "Conference" :lab bot:GoldenDelicious rdfs "Gala" "Fuji" rdfs:l el abel bot:Elstar :lab bot:Gala el rdfs b :la "any edible part of a plant with a sweet flavor" bot:Braeburn fs bot:Apple rd Conference bot:Fuji l labe rdfs: t rdf men "Braeburn" "Fig" s:la :com be "Fruit" l rdfs:label rdfs "Pear" "Apple" l : labe rdfs cul:Fruit el bot:Fig "Pommegranate" l ab s: df :label rdfs bot:pomaceousFruit bot:accessoryFruit bot:Pommegranate "Structure of label el ab hinese Pear" "Fruit" s:l rdfs: rdf el :lab el lab rdfs rdfs: " #" "Pomaceous Fruit" "Accessory Fruit" bot:Fruit bo bot:PlantStructure bot:Strawberry t:c el on ab ta l ins bot:N bo : fs t t:p rd el en ar :lab Semantic Web mm tO gkeum s f :co rdf :Seed s rd rdf fs: bot:Plant la "Strawberry" be l DON WILLEMS RDF and Inferencing "!"" bo INTELLIGENT SYSTEMS ONTOLOGY LUNCH MEETING JUNE 14TH 2011 "the ovary of a seed-bearing plant" WAGENINGEN UR/FOOD & BIOBASEDtOf :par RESEARCH bot bot:Tomato
  • 2. based on: Chapter 5 - RDF and Inferencing Semantic Web for the Working Ontologist Dean Allemang and Jim Hendler ISBN 978-0-12-373556-0
  • 3. Making Data Smarter In the semantic web we have an integrated and distributed representation of data Modeling is needed to make sense of this network of data But how can a model help us make sense of this network of data?
  • 4. Example bot:Fruit cul:Fruit Suppose you find RDF data concerning bot:accessoryFruit bot:Kosui How would you know bot:pomaceousFruit that Kosui is a type of fruit? bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 5. Example: Query Solution 1: Leverage the power of the query: SELECT ?super WHERE {{ bot:Kosui rdfs:subClassOf ?super. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]]. } ... }
  • 6. Example: Query Solution 1: Leverage the power of the query: SELECT ?super WHERE {{ bot:Kosui rdfs:subClassOf ?super. ---> bot:ChinesePear } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]]. } ... }
  • 7. Example: Query Solution 1: Leverage the power of the query: SELECT ?super WHERE {{ bot:Kosui rdfs:subClassOf ?super. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super].---> bot:Pear } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]]. } ... }
  • 8. Example: Query Solution 1: Leverage the power of the query: SELECT ?super WHERE {{ bot:Kosui rdfs:subClassOf ?super. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]. } UNION { ---> bot:pomaceousFruit bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]]. } ... }
  • 9. Example: Query Solution 1: Leverage the power of the query: SELECT ?super WHERE {{ bot:Kosui rdfs:subClassOf ?super. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]. } UNION { ---> bot:accessoryFruit bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]]. } ... }
  • 10. Example: Query Solution 1: Leverage the power of the query: SELECT ?super WHERE {{ bot:Kosui rdfs:subClassOf ?super. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf ?super]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]. } UNION { bot:Kosui rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf [rdfs:subClassOf ?super]]]]. } ... } ---> bot:Fruit ---> cul:Fruit
  • 11. Example: Inferencing Solution 2: Inferencing IF IF ?A rdfs:subClassOf ?B. ?A rdfs:subClassOf ?super. AND AND ?B rdfs:subClassOf ?C. ?x rdf:type ?A. THEN THEN ?A rdfs:subClassOf ?C. ?x rdf:type ?super. subclass-propagation type-propagation rule rule
  • 12. Example: Inferencing bot:Fruit cul:Fruit IF ?A rdfs:subClassOf ?B. bot:accessoryFruit AND ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:pomaceousFruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 13. Example: Inferencing bot:Fruit cul:Fruit IF ?A rdfs:subClassOf ?B. bot:accessoryFruit AND ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:pomaceousFruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 14. Example: Inferencing bot:Fruit cul:Fruit IF ?A rdfs:subClassOf ?B. bot:accessoryFruit AND ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:pomaceousFruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 15. Example: Inferencing bot:Fruit cul:Fruit IF ?A rdfs:subClassOf ?B. bot:accessoryFruit AND ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:pomaceousFruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 16. Example: Inferencing bot:Fruit cul:Fruit IF ?A rdfs:subClassOf ?B. AND bot:accessoryFruit ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:pomaceousFruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 17. Example: Inferencing bot:Fruit cul:Fruit IF ?A rdfs:subClassOf ?B. AND bot:accessoryFruit ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:pomaceousFruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 18. Example: Inferencing bot:Fruit cul:Fruit How would you know bot:accessoryFruit that Kosui is a type of fruit? bot:pomaceousFruit Kosui is a subclass of Fruit bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 19. Inferencing bot:Fruit cul:Fruit bot:accessoryFruit Problem: Possible explosion of the bot:pomaceousFruit number of triples bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 20. Inferencing: asserted vs. inferred Triples bot:Fruit cul:Fruit bot:accessoryFruit Asserted Triples bot:pomaceousFruit Inferred Triples bot:Pear bot:EuropeanPear bot:ChinesePear bot:Conference bot:DoyenneDuComice bot:BlakesPride bot:Forelle bot:Kosui bot:Shinko bot:Whangkeum
  • 21. Inferencing: asserted vs. inferred Triples Think of inferencing and querying Asserted Triples as separate processes Inferred Triples 1. Use inference rules to find all inferred triples using the asserted triples as a conditional 2. Run SPARQL query over asserted and inferred triples
  • 22. Inferencing: when does inferencing happen? Out of range of the RDFS and OWL definitions Depends on the implementation of the inference engine • As soon as a conditional pattern is identified, inference happens and inferred triples are stored in the same RDF store --> explosion risk • Never store inferred triples. Inference only happens in response to a query --> duplicate inference work
  • 23. Inferencing: change management One problem (if inferred triples are stored) is change management. • What happens when a data source changes • A triple is added --> inferencing • A triple is removed/changed --> • Which inferred triples need to be removed?
  • 24. Example: change management cul:Ingredient State of triple store before inference bot:Fruit cul:Vegetable bot:Tomato
  • 25. Example: change management cul:Ingredient Apply subclass- propagation rule bot:Fruit cul:Vegetable bot:Tomato
  • 26. Example: change management cul:Ingredient Apply subclass- propagation rule Resulting (inferred) triple already exists bot:Fruit cul:Vegetable and is not added again bot:Tomato
  • 27. Example: change management cul:Ingredient State of triple store after inference bot:Fruit cul:Vegetable bot:Tomato
  • 28. Example: change management cul:Ingredient Remove erroneous triple (not all Fruits (in a botanical X sense) are ingredients (in a bot:Fruit cul:Vegetable culinary sense). bot:Tomato
  • 29. Example: change management cul:Ingredient Remove triples that were inferred as a result of the existence of the erroneous triple. bot:Fruit X cul:Vegetable bot:Tomato
  • 30. Example: change management State after triple cul:Ingredient removal Problem: The inferred triple should not have been bot:Fruit cul:Vegetable removed because it could have been inferred using another set of bot:Tomato conditionals
  • 31. Example: change management State after triple cul:Ingredient removal Problem: The inferred triple should not have been bot:Fruit cul:Vegetable removed because it could have been inferred using another set of bot:Tomato conditionals
  • 32. Example: change management Desired state after triple removal cul:Ingredient Two solutions: 1. Very complex inference and bot:Fruit cul:Vegetable change management 2. Remove all inferred triples and re-infer bot:Tomato everything
  • 33. Inferencing: forward vs. backward chaining Until now we used forward chaining as inference method. 1. Find all existing triples that can be used as condition (the IF part) in the inference rule. 2. Add a new triple specified in the result (THEN) part of the inference rule. This inference method is mostly used after (a) new fact(s) are added to the triple store.
  • 34. Inferencing: forward vs. backward chaining Backward chaining works the other way around. 1. Find all triples that can be seen as a result (THEN part) of an inference rule. cul:Ingredient IF ?A rdfs:subClassOf ?B. AND bot:Fruit cul:Vegetable ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:Tomato
  • 35. Inferencing: forward vs. backward chaining Backward chaining works the other way around. 1. Find all triples that can be seen as a result (THEN part) of an inference rule. cul:Ingredient IF ?A rdfs:subClassOf ?B. AND bot:Fruit cul:Vegetable ?B rdfs:subClassOf ?C. THEN ?A rdfs:subClassOf ?C. bot:Tomato
  • 36. Inferencing: forward vs. backward chaining Backward chaining works the other way around. 2. If the triple(s) in the condition do not yet exist try to fulfill the condition by other means (ask the user) Is cul:Vegetable Is Fruit a subclass a subclass cul:Ingredient cul:Ingredient of cul:Ingredient? of cul:Ingredient? ? ? bot:Fruit cul:Vegetable bot:Fruit cul:Vegetable bot:Tomato bot:Tomato
  • 37. Inferencing: forward vs. backward chaining Backward chaining works the other way around. 3. If the condition is fulfilled add the inferred triple (defined in the condition) to the triple store. cul:Ingredient NO YES bot:Fruit cul:Vegetable bot:Tomato
  • 38. Conclusion • We want to be able to write a single query that can fetch related data from all integrated data sources. • RDF provides a consistent way to represent data so that information from multiple sources can be brought together. • Information integration is achieved by invoking inference before or during the query process.

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