SlideShare a Scribd company logo
1 of 28
Ontology Aware Applications


         Portuguese Perl Workshop 2011


      Nuno Carvalho <smash@cpan.org>




Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   1
Introduction



    ontologies can he used to store data
         create, query, manipulate, maintain, reason, ...
    build applications using ontologies to store information
    approaches for representing ontologies
    mechanisms to implement common operations
    want to use all this with our favourite programming language
    to develop applications

Perl × ontology −→ modern rich ontology aware applications




          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   2
Introduction




Motivations
    ontology use is growing
    solutions based in this technology are growing
         Semantic Web, etc.
    ontologies are a good approach to store knowledge
    ontologies are easy to share, store, replicate, ...




          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   3
Background
Ontology
A domain ontology is an engineered artifact that informally defines
concepts from a specific domain, representing and organizing them
as conceptualizations which a set of systems working cooperatively
with each other agree to share.

                                     city
                                                         -7.84 ..
                                                                                          Vila Real
                                                                             DST

                                                              LAT
                                                   ISA                          LNG
                                   ISA                                                           39.63 ..


                                                                                     IN
                                                                    Chaves
                         LAT                Lisbon

                                                                                      Portugal
                   -7.47 ..                  LNG                      IN


                                                                               ISA
                                         41.74 ..                                         country


           terms       relations


          Nuno Carvalho <smash@cpan.org>                        PtPW2011: Ontology Aware Applications       4
Ontology Representation

Biblio::Thesaurus + ISO 2778
     simple and uses a simple representation
    not only thesaurus
    easy to push features
    is written in Perl

Braga
CITY-OF Portugal
IS-A city

Vigo
CITY-OF Spain
IS-A city


          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   5
Ontology Manipulation


OML Programs
   describe operations on ontologies
    list of rules
    each rule has a:
         a pattern to look for
         an action list to execute
    produce side effects
    expressive, powerful, yet simple
    embedded programs

Rules
                            pattern => actions.



          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   6
OML Syntax Overview

OML Program


                program → rule +
                      rule → Pattern => Action .

Pattern
    a pattern of information, terms and relations, that can be
    found once or more than once in the ontology

Action
     manipulate information in the ontology
         add, remove, terms or relations, ...
    produce any arbitrary user defined side effects
         produce graphs, images, HTML pages, update databases, ...


          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   7
Ontology Example


                          city
                                              -7.84 ..
                                                                               Vila Real
                                                                  DST

                                                   LAT
                                        ISA                          LNG
                        ISA                                                           39.63 ..


                                                                          IN
                                                         Chaves
              LAT                Lisbon

                                                                           Portugal
        -7.47 ..                  LNG                      IN


                                                                    ISA
                              41.74 ..                                         country


terms       relations




            Nuno Carvalho <smash@cpan.org>          PtPW2011: Ontology Aware Applications        8
OML Patterns Examples


 #     Pattern
 1     term(Chaves)              term Chaves exists
 2     rel(ISA)                   relation ISA exists
 3     term($t)                          for all terms
 4     rel($r)                        for all relations
 5     Chaves ISA city
 6     $name ISA city
 7     $name ISA $place
 8     Chaves $rel $term   for all related to Chaves
 9     Chaves ISA city ∧ Portugal ISA country
 10    Chaves ISA city ∨ Portugal ISA country
 11    Chaves LAT $lat ∧ Chaves LNG $lng




      Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   9
OML Actions Examples



Manipulate Information
    add(Portugal ISA country)
   del($place ISA city)

Arbitrary Effect
sub {
  $db->execute(
     ’INSERT INTO cities (name) VALUES ($city)’
  );
}




        Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   10
OML Rules Examples

$city IN Portugal ⇒ add($city IN Europe).

$c ISA city ∧ $c IN Portugal ⇒ add($c LANG Portuguese).

$city ISA city ∧ $city ISA country ⇒
  sub { print ”Warning: review $city ISA relation!” }.
                                                   ;

$name ISA city ∧ $name IN $country ⇒ sub {
$db->execute(
 ’INSERT INTO cities (name,country) VALUES ($name,$country)’
)}.

$a $r $b ∧ $b $r $c ⇒ add($a $r $c).

$a $r $b ∧ $b $r $c ∧ $a $r $c ⇒ rem($a $r $c).
          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   11
OML Compiler




Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   12
Architecture Overview




                               ontology




     program                  compiler                    result




    Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   13
Compiler Architecture Overview


     program                   parser



                              ontology                     pTree



                             expander


     diTree


                               reactor                     result




    Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   14
Embedded OML




Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   15
Embedded OML


Challenge
     can applications and tools be written only in OML?
         actually yes, but do we want to?
               NO!

Why?
   efficient for ontology processing
   real world applications require more
         HTML operations, databases, ...


    we want the best of both worlds
         OML for ontology aware tasks
         general purpose programming language for everything else



          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   16
Embed OML


 Initial
Program




                                                       ne




                                                                              e
                                                                           ut
                                                      bi




                                                                        ec
                                                   m
            lit




                                                                      ex
                              id




                                                 co
           sp




                    Perl
                   Perl                 Perl
                                       Perl
                  Perl                Perl
 Perl
  +                                                         Perl                  Result
 OML                Perl
                   Perl                 Perl
                                       Perl
                  OML                 Perl


                           compile


                                                                                  Final
                                                                                  Result




           Nuno Carvalho <smash@cpan.org>      PtPW2011: Ontology Aware Applications       17
Embedded OML Algorithm


Algorithm 1: Weaver(program,split,compile,combine) : program
Input: program – original program to process
Input: split – function that separates the code parts by language
Input: compile – tranforms OML into Perl
Input: combine – joins parts of code together

parts ← split(program)
forall the (lang , code) ∈ parts do
    if lang is DSL then
         code ← compile(code)
    push(parts2, code)
returncombine(parts2)




          Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   18
Embed OML in Perl

Why Perl?
   provides modules for ”everything else”
     easy to extend

Example:
1    use Biblio : : Thesaurus : : ModRewrite : : Embed ;
2
3    my $term = $ARGV [ 0 ] ;
4    my $ontology = thesaurusLoad ( $ARGV [ 1 ] ) ;
5
6    OML printTerms ( ontology , term )
7       term $r $t = sub { print ”term $ r $ t n ” ; } .
                     >
8       $t $r term = sub { print ”$ t $ r term n ” ; } .
                     >
9    ENDOML
10
11   printTerms ( $ontology , $term ) ;



            Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   19
Example: OntoMap




Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   20
Example Screenshot




    Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   21
Information in JSON

GET /locations.cgi HTTP/1.1
(...)
Content-Type: application/json; charset=UTF-8

{"markers":[{"name":"Braga","desc":"Braga<hr><b>CITY-OF</b>
Portugal<br><b>IS-A</b> city<br><b>LAT</b> 41.5517605<br><b
>LNG</b> -8.4229034<br>","lat":"41.5517605","lng":"-8.42290
34","is":"city"},{"name":"Castelo de Alva","desc":"Castelo
de Alva<hr><b>IS-A</b> castle<br><b>LAT</b> 41.0913745<br><
b>LNG</b> -6.8078773<br>","lat":"41.0913745","lng":"-6.8078
773","is":"castle"},{"name":"Castelo de Tavira","desc":"Cas
telo de Tavira<hr><b>IS-A</b> castle<br><b>LAT</b> 37.12131
22<br><b>LNG</b> -7.6533538<br>","lat":"37.1213122","lng":"
-7.6533538","is":"castle"},{"name":"Guimaraes","desc":"Guim
araes<hr><b>CITY-OF</b> Portugal<br><b>IS-A</b> city<br><b>
LAT</b> 41.4419546<br><b>LNG</b> -8.2956069<br>","lat":"41.
4419546","lng":"-8.2956069","is":"city"},{"name":"Lagos","d
        Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   22
OML Program: locations.cgi

1    use CGI ;
2    use JSON ;
3    use Biblio : : Thesaurus : : ModRewrite : : Embed ;
4
5    my $onto = thesaurusLoad ( ’ geo . iso ’ ) ;
6    my $filter = param ( ’ FILTER ’ ) or ’ ANY ’ ;
7    print header ,
8            ”{ m a r k e r s : ” ,
9               get points ( $onto , $filter ) ,
10                 ”} ” ;
11
12   OML get points ( ontology , filter )
13     $point LAT $x AND $point LNG $y
14     AND $point ISA filter
15       = sub {
          >
16          print to json ( {name= >$point , lat=>$x , lng=>$y} ) ;
17       }.
18   ENDOML


            Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   23
OML Program: addlocation.cgi

1    use CGI ;
2    use Biblio : : Thesaurus : : ModRewrite : : Embed ;
3
4    my   $name = param ( ’ NAME ’ ) ;
5    my   $isa = param ( ’ ISA ’ ) ;
6    my   $lat = param ( ’ LAT ’ ) ;
7    my   $lng = param ( ’ LNG ’ ) ;
8
9    my $onto = thesaurusLoad ( ’ geo . iso ’ ) ;
10   add location ( $onto , $name , $isa , $lat , $lng ) ;
11   $onto−>save ( ’ geo . iso ’ ) ;
12
13   OML add location ( ontology , name , isa , lat , lng )
14     do =>
15       add ( name ISA isa )
16       add ( name LAT lat )
17       add ( name LNG lng ) .
18   ENDOML


             Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   24
Conclusion




language easy to use, efficient
easy to compose with other tools
elegant and simple approach to build ontology-aware
applications
modular, build complex applications using small blocks
embedded mechanism is a clear advantage
weaving mechanism can be extended for other languages




     Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   25
Conclusion


  weaving mechanism can be language-agnostic
  split many languages
  having compilers for each language




                                                   ne




                                                                          e
                                                                       ut
                                                  bi




                                                                    ec
                                               m
        lit




                                                                  ex
                          id




                                             co
       sp




                Perl
               Perl                 Perl
                                   Perl
              Perl                Perl
Perl
 +                                                      Perl                  Result
DSL*            Perl
               Perl                 Perl
                                   Perl
              DSL                 Perl


                       compile*




       Nuno Carvalho <smash@cpan.org>      PtPW2011: Ontology Aware Applications       26
Conclusion


  this mechanism can be adopted in any GPL
  dynamic language
  allows pre-processing of source code




                                                   ne




                                                                          e
                                                                       ut
                                                  bi




                                                                    ec
                                               m
        lit




                                                                  ex
                          id




                                             co
       sp




                Perl
               Perl                 Perl
                                   Perl
              GPL                 GPL
GPL
 +                                                      GPL                   Result
DSL*            Perl
               Perl                 Perl
                                   Perl
              DSL                 GPL


                       compile*




       Nuno Carvalho <smash@cpan.org>      PtPW2011: Ontology Aware Applications       27
Thank You!




Nuno Carvalho <smash@cpan.org>   PtPW2011: Ontology Aware Applications   28

More Related Content

Viewers also liked

Perl 7, the story of
Perl 7, the story ofPerl 7, the story of
Perl 7, the story ofAndrew Shitov
 
Qué es la informatica
Qué es la informaticaQué es la informatica
Qué es la informaticapumasayay
 
Minha submissão (Robson Nascimento do Carmo)
Minha submissão (Robson Nascimento do Carmo)Minha submissão (Robson Nascimento do Carmo)
Minha submissão (Robson Nascimento do Carmo)Robson Carmo
 
Arogyaka rajmarg dr. shriniwas kashalikar
Arogyaka rajmarg dr. shriniwas kashalikarArogyaka rajmarg dr. shriniwas kashalikar
Arogyaka rajmarg dr. shriniwas kashalikarshriniwas kashalikar
 
iPads in Educazione Seth Dickens - www.digitalang.com
iPads in Educazione Seth Dickens - www.digitalang.comiPads in Educazione Seth Dickens - www.digitalang.com
iPads in Educazione Seth Dickens - www.digitalang.comSeth dickens
 
Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...
Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...
Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...shriniwas kashalikar
 
La direcció estratègica de l’empresa
La direcció estratègica de l’empresaLa direcció estratègica de l’empresa
La direcció estratègica de l’empresaLaura
 

Viewers also liked (13)

Introducing perl6
Introducing perl6Introducing perl6
Introducing perl6
 
Perl 7, the story of
Perl 7, the story ofPerl 7, the story of
Perl 7, the story of
 
Qué es la informatica
Qué es la informaticaQué es la informatica
Qué es la informatica
 
Conjoncture economique 4eme trimestre
Conjoncture economique 4eme  trimestreConjoncture economique 4eme  trimestre
Conjoncture economique 4eme trimestre
 
Minha submissão (Robson Nascimento do Carmo)
Minha submissão (Robson Nascimento do Carmo)Minha submissão (Robson Nascimento do Carmo)
Minha submissão (Robson Nascimento do Carmo)
 
Presentación1
Presentación1Presentación1
Presentación1
 
Unit writing
Unit writingUnit writing
Unit writing
 
Arogyaka rajmarg dr. shriniwas kashalikar
Arogyaka rajmarg dr. shriniwas kashalikarArogyaka rajmarg dr. shriniwas kashalikar
Arogyaka rajmarg dr. shriniwas kashalikar
 
iPads in Educazione Seth Dickens - www.digitalang.com
iPads in Educazione Seth Dickens - www.digitalang.comiPads in Educazione Seth Dickens - www.digitalang.com
iPads in Educazione Seth Dickens - www.digitalang.com
 
Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...
Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...
Arogyasmarana marathi bestseller on superhealth dr. shriniwas kashalikar & dr...
 
Numeracy
NumeracyNumeracy
Numeracy
 
Beautiful Parrot
Beautiful ParrotBeautiful Parrot
Beautiful Parrot
 
La direcció estratègica de l’empresa
La direcció estratègica de l’empresaLa direcció estratègica de l’empresa
La direcció estratègica de l’empresa
 

Recently uploaded

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 

Recently uploaded (20)

Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

Ontology Aware Applications

  • 1. Ontology Aware Applications Portuguese Perl Workshop 2011 Nuno Carvalho <smash@cpan.org> Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 1
  • 2. Introduction ontologies can he used to store data create, query, manipulate, maintain, reason, ... build applications using ontologies to store information approaches for representing ontologies mechanisms to implement common operations want to use all this with our favourite programming language to develop applications Perl × ontology −→ modern rich ontology aware applications Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 2
  • 3. Introduction Motivations ontology use is growing solutions based in this technology are growing Semantic Web, etc. ontologies are a good approach to store knowledge ontologies are easy to share, store, replicate, ... Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 3
  • 4. Background Ontology A domain ontology is an engineered artifact that informally defines concepts from a specific domain, representing and organizing them as conceptualizations which a set of systems working cooperatively with each other agree to share. city -7.84 .. Vila Real DST LAT ISA LNG ISA 39.63 .. IN Chaves LAT Lisbon Portugal -7.47 .. LNG IN ISA 41.74 .. country terms relations Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 4
  • 5. Ontology Representation Biblio::Thesaurus + ISO 2778 simple and uses a simple representation not only thesaurus easy to push features is written in Perl Braga CITY-OF Portugal IS-A city Vigo CITY-OF Spain IS-A city Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 5
  • 6. Ontology Manipulation OML Programs describe operations on ontologies list of rules each rule has a: a pattern to look for an action list to execute produce side effects expressive, powerful, yet simple embedded programs Rules pattern => actions. Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 6
  • 7. OML Syntax Overview OML Program program → rule + rule → Pattern => Action . Pattern a pattern of information, terms and relations, that can be found once or more than once in the ontology Action manipulate information in the ontology add, remove, terms or relations, ... produce any arbitrary user defined side effects produce graphs, images, HTML pages, update databases, ... Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 7
  • 8. Ontology Example city -7.84 .. Vila Real DST LAT ISA LNG ISA 39.63 .. IN Chaves LAT Lisbon Portugal -7.47 .. LNG IN ISA 41.74 .. country terms relations Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 8
  • 9. OML Patterns Examples # Pattern 1 term(Chaves) term Chaves exists 2 rel(ISA) relation ISA exists 3 term($t) for all terms 4 rel($r) for all relations 5 Chaves ISA city 6 $name ISA city 7 $name ISA $place 8 Chaves $rel $term for all related to Chaves 9 Chaves ISA city ∧ Portugal ISA country 10 Chaves ISA city ∨ Portugal ISA country 11 Chaves LAT $lat ∧ Chaves LNG $lng Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 9
  • 10. OML Actions Examples Manipulate Information add(Portugal ISA country) del($place ISA city) Arbitrary Effect sub { $db->execute( ’INSERT INTO cities (name) VALUES ($city)’ ); } Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 10
  • 11. OML Rules Examples $city IN Portugal ⇒ add($city IN Europe). $c ISA city ∧ $c IN Portugal ⇒ add($c LANG Portuguese). $city ISA city ∧ $city ISA country ⇒ sub { print ”Warning: review $city ISA relation!” }. ; $name ISA city ∧ $name IN $country ⇒ sub { $db->execute( ’INSERT INTO cities (name,country) VALUES ($name,$country)’ )}. $a $r $b ∧ $b $r $c ⇒ add($a $r $c). $a $r $b ∧ $b $r $c ∧ $a $r $c ⇒ rem($a $r $c). Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 11
  • 12. OML Compiler Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 12
  • 13. Architecture Overview ontology program compiler result Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 13
  • 14. Compiler Architecture Overview program parser ontology pTree expander diTree reactor result Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 14
  • 15. Embedded OML Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 15
  • 16. Embedded OML Challenge can applications and tools be written only in OML? actually yes, but do we want to? NO! Why? efficient for ontology processing real world applications require more HTML operations, databases, ... we want the best of both worlds OML for ontology aware tasks general purpose programming language for everything else Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 16
  • 17. Embed OML Initial Program ne e ut bi ec m lit ex id co sp Perl Perl Perl Perl Perl Perl Perl + Perl Result OML Perl Perl Perl Perl OML Perl compile Final Result Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 17
  • 18. Embedded OML Algorithm Algorithm 1: Weaver(program,split,compile,combine) : program Input: program – original program to process Input: split – function that separates the code parts by language Input: compile – tranforms OML into Perl Input: combine – joins parts of code together parts ← split(program) forall the (lang , code) ∈ parts do if lang is DSL then code ← compile(code) push(parts2, code) returncombine(parts2) Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 18
  • 19. Embed OML in Perl Why Perl? provides modules for ”everything else” easy to extend Example: 1 use Biblio : : Thesaurus : : ModRewrite : : Embed ; 2 3 my $term = $ARGV [ 0 ] ; 4 my $ontology = thesaurusLoad ( $ARGV [ 1 ] ) ; 5 6 OML printTerms ( ontology , term ) 7 term $r $t = sub { print ”term $ r $ t n ” ; } . > 8 $t $r term = sub { print ”$ t $ r term n ” ; } . > 9 ENDOML 10 11 printTerms ( $ontology , $term ) ; Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 19
  • 20. Example: OntoMap Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 20
  • 21. Example Screenshot Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 21
  • 22. Information in JSON GET /locations.cgi HTTP/1.1 (...) Content-Type: application/json; charset=UTF-8 {"markers":[{"name":"Braga","desc":"Braga<hr><b>CITY-OF</b> Portugal<br><b>IS-A</b> city<br><b>LAT</b> 41.5517605<br><b >LNG</b> -8.4229034<br>","lat":"41.5517605","lng":"-8.42290 34","is":"city"},{"name":"Castelo de Alva","desc":"Castelo de Alva<hr><b>IS-A</b> castle<br><b>LAT</b> 41.0913745<br>< b>LNG</b> -6.8078773<br>","lat":"41.0913745","lng":"-6.8078 773","is":"castle"},{"name":"Castelo de Tavira","desc":"Cas telo de Tavira<hr><b>IS-A</b> castle<br><b>LAT</b> 37.12131 22<br><b>LNG</b> -7.6533538<br>","lat":"37.1213122","lng":" -7.6533538","is":"castle"},{"name":"Guimaraes","desc":"Guim araes<hr><b>CITY-OF</b> Portugal<br><b>IS-A</b> city<br><b> LAT</b> 41.4419546<br><b>LNG</b> -8.2956069<br>","lat":"41. 4419546","lng":"-8.2956069","is":"city"},{"name":"Lagos","d Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 22
  • 23. OML Program: locations.cgi 1 use CGI ; 2 use JSON ; 3 use Biblio : : Thesaurus : : ModRewrite : : Embed ; 4 5 my $onto = thesaurusLoad ( ’ geo . iso ’ ) ; 6 my $filter = param ( ’ FILTER ’ ) or ’ ANY ’ ; 7 print header , 8 ”{ m a r k e r s : ” , 9 get points ( $onto , $filter ) , 10 ”} ” ; 11 12 OML get points ( ontology , filter ) 13 $point LAT $x AND $point LNG $y 14 AND $point ISA filter 15 = sub { > 16 print to json ( {name= >$point , lat=>$x , lng=>$y} ) ; 17 }. 18 ENDOML Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 23
  • 24. OML Program: addlocation.cgi 1 use CGI ; 2 use Biblio : : Thesaurus : : ModRewrite : : Embed ; 3 4 my $name = param ( ’ NAME ’ ) ; 5 my $isa = param ( ’ ISA ’ ) ; 6 my $lat = param ( ’ LAT ’ ) ; 7 my $lng = param ( ’ LNG ’ ) ; 8 9 my $onto = thesaurusLoad ( ’ geo . iso ’ ) ; 10 add location ( $onto , $name , $isa , $lat , $lng ) ; 11 $onto−>save ( ’ geo . iso ’ ) ; 12 13 OML add location ( ontology , name , isa , lat , lng ) 14 do => 15 add ( name ISA isa ) 16 add ( name LAT lat ) 17 add ( name LNG lng ) . 18 ENDOML Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 24
  • 25. Conclusion language easy to use, efficient easy to compose with other tools elegant and simple approach to build ontology-aware applications modular, build complex applications using small blocks embedded mechanism is a clear advantage weaving mechanism can be extended for other languages Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 25
  • 26. Conclusion weaving mechanism can be language-agnostic split many languages having compilers for each language ne e ut bi ec m lit ex id co sp Perl Perl Perl Perl Perl Perl Perl + Perl Result DSL* Perl Perl Perl Perl DSL Perl compile* Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 26
  • 27. Conclusion this mechanism can be adopted in any GPL dynamic language allows pre-processing of source code ne e ut bi ec m lit ex id co sp Perl Perl Perl Perl GPL GPL GPL + GPL Result DSL* Perl Perl Perl Perl DSL GPL compile* Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 27
  • 28. Thank You! Nuno Carvalho <smash@cpan.org> PtPW2011: Ontology Aware Applications 28