Thesis presentation Samuel Lampa
Upcoming SlideShare
Loading in...5
×
 

Thesis presentation Samuel Lampa

on

  • 1,429 views

Presentation of my project, entitled "SWI-Prolog as a Semantic Web tool for semantic querying in Bioclipse: Integration and performance benchmarking"

Presentation of my project, entitled "SWI-Prolog as a Semantic Web tool for semantic querying in Bioclipse: Integration and performance benchmarking"

Statistics

Views

Total Views
1,429
Views on SlideShare
1,367
Embed Views
62

Actions

Likes
0
Downloads
10
Comments
0

4 Embeds 62

http://saml.rilspace.org 59
http://webcache.googleusercontent.com 1
http://www.linkedin.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Thesis presentation Samuel Lampa Thesis presentation Samuel Lampa Presentation Transcript

    • MSc Thesis presentation: SWI-Prolog as a Semantic Web tool for semantic querying in Bioclipse: Integration and performance benchmarking Samuel Lampa <http://saml.rilspace.org> Supervisor: Egon Willighagen <http://chem-bla-ics.blogspot.com> Bioclipse & Proteochemometric group (Prof. Jarl Wikberg) Department of Pharmaceutical Bioinformatics Uppsala University 2010-06-18
    • What is Bioclipse?
    • What is the Semantic Web?
    • What is the Semantic Web?
    • RDF Example (In Notation 3 format) @prefix : <http://www.nmrshiftdb.org/onto#> . xsd: <http://www.w3.org/2001/XMLSchema#> . nmr: <http://pele.farmbio.uu.se/nmrshiftdb/?> nmr:moleculeId=234 :hasSpectrum nmr:spectrumId=4735 ; :moleculeId "234" . nmr:spectrumId=4735 :hasPeak nmr:s4735p0 , nmr:s4735p1 , nmr:s4735p2 . nmr:s4735p0 :hasShift "17.6"^^xsd:decimal . nmr:s4735p1 :hasShift "18.3"^^xsd:decimal . nmr:s4735p2 :hasShift "22.6"^^xsd:decimal .
    • SPARQL Example PREFIX fn: <http://www.w3.org/2005/xpath-functions#> PREFIX nmr: <http://www.nmrshiftdb.org/onto#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> SELECT ?s WHERE { ?s nmr:hasPeak [ nmr:hasShift ?s1 ] , [ nmr:hasShift ?s2 ] , [ nmr:hasShift ?s3 ] . FILTER ( fn:abs(?s1 - 17.6) < 0.3 ) . FILTER ( fn:abs(?s2 - 18.3) < 0.3 ) . FILTER ( fn:abs(?s3 - 22.6) < 0.3 ) . }
    • What is Prolog?
    • Prolog: Fewer technical layers Conventional software Prolog
    • % === SOME FACTS === Prolog code example hasHBondDonorsCount( substanceX, 3 ). hasHBondDonorsCount( substanceY, 5 ). hasHBondDonorsCount( substanceZ, 7 ). hasHBondAcceptorsCount( substanceX, 7 ). hasHBondAcceptorsCount( substanceY, 10 ). hasHBondAcceptorsCount( substanceZ, 13 ). hasMolecularWeight( substanceX, 320 ). hasMolecularWeight( substanceY, 500 ). hasMolecularWeight( substanceZ, 500 ). % === A RULE ("RULE OF FIVE" ÀLA PROLOG) === isDrugLike( Substance ) :- hasHBondDonorsCount( Substance, HBDonors ), HBDonors <= 5, hasHBondAcceptorsCount( Substance, HBAcceptors ), HBAcceptors <= 10, hasMolecularWeight( Substance, MW ), MW < 500. % === QUERYING THE RULE === ?- isDrugLike(substanceX) true. ?- isDrugLike(X) X = substanceX ; X = substanceY.
    • % === SOME FACTS === Prolog code example hasHBondDonorsCount( substanceX, 3 ). hasHBondDonorsCount( substanceY, 5 ). hasHBondDonorsCount( substanceZ, 7 ). hasHBondAcceptorsCount( substanceX, 7 ). hasHBondAcceptorsCount( substanceY, 10 ). hasHBondAcceptorsCount( substanceZ, 13 ). hasMolecularWeight( substanceX, 320 ). hasMolecularWeight( substanceY, 500 ). hasMolecularWeight( substanceZ, 500 ). Implication (“If [body] then [head]”) Head A RULE ("RULE OF FIVE" ÀLA PROLOG) === % === isDrugLike( Substance ) :- hasHBondDonorsCount( Substance, HBDonors ), HBDonors <= 5, hasHBondAcceptorsCount( Substance, HBAcceptors ), HBAcceptors <= 10, hasMolecularWeight( Substance, MW ), MW < 500. Body % === QUERYING THE RULE === ?- isDrugLike(substanceX) Comma means true. conjunction (“and”) ?- isDrugLike(X) X = substanceX ; Capitalized terms are always variables X = substanceY.
    • % === SOME FACTS === Prolog code example hasHBondDonorsCount( substanceX, 3 ). hasHBondDonorsCount( substanceY, 5 ). hasHBondDonorsCount( substanceZ, 7 ). hasHBondAcceptorsCount( substanceX, 7 ). hasHBondAcceptorsCount( substanceY, 10 ). hasHBondAcceptorsCount( substanceZ, 13 ). hasMolecularWeight( substanceX, 320 ). hasMolecularWeight( substanceY, 500 ). hasMolecularWeight( substanceZ, 500 ). % === A RULE ("RULE OF FIVE" ÀLA PROLOG) === isDrugLike( Substance ) :- hasHBondDonorsCount( Substance, HBDonors ), HBDonors <= 5, hasHBondAcceptorsCount( Substance, HBAcceptors ), HBAcceptors <= 10, hasMolecularWeight( Substance, MW ), MW < 500. % === QUERYING THE RULE === Testing a specific atom ?- isDrugLike(substanceX) (“sutstanceX”) true. ?- isDrugLike(X) By submitting a variable “X”, X = substanceX ; it will be populated with all instances which satisfies X = substanceY. the “isDrugLike” rule
    • Prolog: Fewer technical layers Conventional software Prolog
    • What was done in this project?
    • The work done (New functionality in dashed lines)
    • SWI-Prolog in action in Bioclipse
    • SPARQL Code used
    • Prolog code used (1)
    • Prolog code used (2)
    • Thank you! Samuel Lampa <http://saml.rilspace.org> Supervisor: Egon Willighagen <http://chem-bla-ics.blogspot.com> Bioclipse & Proteochemometric group (Prof. Jarl Wikberg) Department of Pharmaceutical Bioinformatics Uppsala University 2010-06-18