SlideShare a Scribd company logo
Ontology Access Kit (OAK)
workshop / soft launch
2022-06-15
https://incatools.github.io/ontology-access-kit
https://bit.ly/get-oak
Agenda
Part 1 (first hour)
● Background (these slides):
○ Motivation & Background
○ Key Concepts
● Demo/Tutorial
○ Installation
○ Command Line Usage
● Example apps:
○ Mapping Walker
○ …
Part 2 (second hour)
● Roadmap and milestones
https://github.com/INCATools/ontology-
access-kit/milestones
● Using SQLite
● Code walkthrough
○ LexMatch
○ SemSim
● Design Decisions
○ Nomenclature
○ Architecture
Why would I want a generic ontology library?
● To build data infrastructure
○ Data repositories
○ Knowledge bases
● To clean and analyze data
○ Data annotation and alignment
○ Data interpretation and discovery
■ gene set enrichment and pathway analysis
■ Semantic similarity and knowledge base embedding
■ Rolling up data
● To explore and build ontologies
○ Visualization, lookup, mapping, quality control
Why would I want ANOTHER generic ontology library?
“I already use X, it’s great!”
I assume if you’re here, then X isn’t a great fit for all your problems
Methods of ontology access (i.e computational use of ontologies)
External API or query server
REST-ish API
● BioPortal / OntoPortal
● OLS
Query Interface (SPARQL)
● Ubergraph
● Ontobee
Methods of ontology access (i.e computational use of ontologies)
External API or query server
REST-ish API
● BioPortal / OntoPortal
● OLS
Query Interface (SPARQL)
● Ubergraph
● Ontobee
Local File
● RDF/OWL
● OBO Format
● OBO Json
Libraries
● Pronto/fastobo
● OWLAPI
● FunOWL
● OwlReady
● Obonet
● Or simply: Curl/requests
Advantages and disadvantages of different methods
External API or query server
Advantages:
● No local download necessary
● Minimal local compute
Disadvantages:
● Doesn’t have my ontology/version
● Doesn’t do the thing I need
○ Many operations are more suited to in-
memory processing
○ Multi high-latency call antipattern
● Occasional downtime
[counterpoint: run service locally]
Advantages and disadvantages of different methods
External API or query server
Advantages:
● No local download necessary
● Minimal local compute
Disadvantages:
● Doesn’t have my ontology/version
● Doesn’t do the thing I need
○ Many operations are more suited to in-
memory processing
○ Multi high-latency call antipattern
● Occasional downtime
[counterpoint: run service locally]
Local File
Advantages
● Control over ontology/version
● Efficient operations (e.g. graph/recursive)
Disadvantages
● Doesn’t scale for long-tail sized ontologies
○ PRO, CHEBI, NCBITaxon
Increased effort / increased control
The format/datamodel landscape
OWL, RDF
● Great for communicating to OWL reasoners
● OWL and RDF are two datamodels, multiple formats…
● Wrong abstraction for many problems
○ Triples != Edges
○ Axioms != Edges
○ Most code using OWL written by non-OWL gurus is dangerously wrong
● Poor historic support outside JVM
● Poor scaling for long-tail ontologies
○ Even mid-size ontologies like Uberon are slow to parse with rdflib
https://www.w3.org/TR/owl2-primer
Use of OWL within the Gene Ontology
Christopher J Mungall, Heiko Dietze, David Osumi-Sutherland (OWLED)
doi: https://doi.org/10.1101/010090
The format/datamodel landscape
OBO Format
● Poor for long-tail of expressivity
○ Good enough for 95% of purposes
○ Many rarely used OWL constructs can’t be expressed
○ Poor internationalization
● High hidden legacy cost of some design decisions
○ E.g. identifiers
● Parsing
○ Easy to do quick hacky parsers
○ Surprisingly hard to write a robust parser
● Not used outside biology
● Impossible to wean bioinformaticians off it
https://owlcollab.github.io/oboformat/doc/obo-syntax.html
The format/datamodel landscape
OBO JSON
● Designed for the long-tail
○ Core structures intended to serve 95% of purposes in an easy fashion
○ Additional constructs can be added for remaining 5%
● Low uptake
https://github.com/geneontology/obographs
https://douroucouli.wordpress.com/2016/10/04/a-developer-friendly-json-exchange-format-for-ontologies
The format/datamodel landscape
Other options
● Ad-hoc TSVs
● RRF
● SKOS
Existing Ontology Libraries
● There is a multitude of ontology libraries
● For brevity we will highlight a few key ones
○ Emphasis on Python
OWLAPI (Java)
● Complete support for all OWL specifications
○ This is highly non-trivial!!!
● Only way to directly communicate with multiple reasoners
● Has been indispensable for ontology development cycle
○ ROBOT, Protege
● Less widely used for ontology application cycle
● Challenges:
○ JVM
○ Size long-tail: Local file / memory bound, no DBMS access
○ OWL is not the right level of abstraction for many problems
https://github.com/owlcs/owlapi
FunOWL (Python)
● Partial support for OWL specifications
○ Read: Functional
○ Write: Functional, RDF
○ Not intended for communication with reasoners
● Less well supported
○ But does what is in scope quite well
https://github.com/hsolbrig/funowl
Horned OWL (Rust)
● Rust OWL library
○ Implements all of OWL2
○ Faster than OWL API
● Experimental python bindings
○ https://github.com/jannahastings/py-horned-owl
https://github.com/phillord/horned-owl
Pronto (Python, with Rust bindings)
● Support for OBO-Format and OBO-Format OWL profile
● Pros: Python, Fast (fastobo), and robust
● Cons (all related to coupling with OBO-Format):
○ Most ontologies don’t conform to its strict profile (fixable)
○ long-tail of expressivity (hard to fix)
https://github.com/althonos/pronto
https://github.com/fastobo/fastobo
Notable mentions
● OWL-y
○ SCOWL
○ OwlReady2
● Graph-y
○ Nxontology - https://github.com/related-sciences/nxontology
○ obonet
○ Ontobio
○ Phenol (Java)
○ OntologyX [R]
● API wrappers
○ Rols [R]
Existing APIs and Endpoints
● SPARQL
● SQL
owlery
● Web API for OWL
● Supports reasoning
● Easy to stand up
https://github.com/phenoscape/owlery
BioPortal
● Comprehensive and broad
○ Nearly 1k ontologies
○ Up-to-date
● Robust, well-documented APIs
○ Term access
○ Automated Mappings
○ Annotator
● API key required
● Broader than biomedicine; OntoPortal
○ MatPortal
○ AgroPortal
○ EcoPortal
https://data.bioontology.org/documentation
OLS: Ontology Lookup Service
● Less comprehensive but curated for quality
○ 275 ontologies
○ Up-to-date
● Robust, well-documented APIs
○ Term access
○ Curated Mappings (OxO)
○ Annotator (ZOOMA)
● Many local Docker installations
https://www.ebi.ac.uk/ols/docs/api
OntoBee SPARQL endpoint
● OBO plus others
● SPARQL endpoint
○ More expressive than an API
○ But sometimes more work to express yourself!
● Main drawback:
○ RDF/SPARQL not the right level of abstraction for
many tasks
■ E.g. impossible to get part-ancestors
https://www.ontobee.org/sparql
Ubergraph SPARQL endpoint
● Subset of OBO Library
○ (mostly) “coherent collection”
● SPARQL endpoint
● Relation Graph pre-calculated
○ Part-of ancestor queries is easy!
https://github.com/INCATools/ubergraph
Ubergraph SPARQL endpoint uses Relation Graph
● Edges (direct and indirect) as simple triples
https://github.com/balhoff/relation-graph Parts of organs that are parts
of abdomens
Relational Database: Semantic SQL
● Uses rdftab (Rust) for fast loading into triple tables
● Uses relation-graph (Scala) for entailed edge tables
● Uses SQL views to provide higher level constructs (OWL and RG)
● Python ORM for those that like that sort of thing
https://github.com/INCATools/semantic-sql/
Relational Database: Semantic SQL
● Uses rdftab (Rust) for fast loading into triple tables
● Uses relation-graph (Scala) for entailed edge tables
● Uses SQL views to provide higher level constructs (OWL and RG)
● Python ORM for those that like that sort of thing
https://github.com/INCATools/semantic-sql/
Find terms with mappings to
Allen Brain Atlas that are not part
of the brain
Notable Mentions: Endpoints
● Aber-OWL (OBO triplestore)
○ Supports SPARQL and DL queries
● SciGraph (neo4j)
● …
With me so far?
Just tell me which one to use to do X
Historically we have said: IT DEPENDS ON X (and Y and Z)
● End result: a multiple square pegs and round holes
OAK: The People’s Pluralistic Python Ontology Library
Support multiple conceptualizations of what an
ontology is
● A relational graph for data analysis
● A collection of logical statements
● A vocabulary for text mining
● A collection of concepts and mappings for
tagging data
● Terminological units plus rich metadata (e.g.
conforming to OMO datamodel)
These are all to some extent interlocking
OAK: The People’s Pluralistic Python Ontology Library
Support multiple conceptualizations of what an
ontology is
● A relational graph for data analysis
● A collection of logical statements
● A vocabulary for text mining
● A collection of concepts and mappings for
tagging data
● Terminological units plus rich metadata (e.g.
conforming to OMO datamodel)
These are all to some extent interlocking
Support multiple modes of access
● Local files
○ obo, json, rdf, owl
● Remote API services
○ Ontology portals
○ Large scale annotation
● Local or remote database
○ SPARQL
○ SQL
OAK: The People’s Pluralistic Python Ontology Library
Support multiple conceptualizations of what an
ontology is
● A relational graph for data analysis
● A collection of logical statements
● A vocabulary for text mining
● A collection of concepts and mappings for
tagging data
● Terminological units plus rich metadata (e.g.
conforming to OMO datamodel)
These are all to some extent interlocking
Support multiple modes of access
● Local files
○ obo, json, rdf, owl
● Remote API services
○ Ontology portals
○ Large scale annotation
● Local or remote database
○ SPARQL
○ SQL
Mid-term goal: Speed
OAK: Key Concepts
Interface: What do I want to do?
OAK: Key Concepts
Interface: What do I want to do? Implementation: How is it done behind the
scenes?
OAK: Key Concepts
Interface: What do I want to do?
● Basic Ontology Interface
● OboGraph Interface
● Owl Interface
● Simple Triples Interface
● Text Annotator Interface
● Validation Interface
● Ontology Changer Interface
● Mapping Retrieval Interface
● Lexical Mapping Interface
Implementation: How is it done behind the
scenes?
OAK: Key Concepts
Interface: What do I want to do?
● Basic Ontology Interface
● OboGraph Interface
● Owl Interface
● Simple Triples Interface
● Text Annotator Interface
● Validation Interface
● Ontology Changer Interface
● Mapping Retrieval Interface
● Lexical Mapping Interface
Implementation: How is it done behind the
scenes?
● Pronto Implementation
● SQL Database Implementation
○ SQLite
○ PostgreSQL
● SPARQL Implementation
○ Ontobee
○ Ubergraph
○ Local RDF File
● Ontoportal Implementation
○ Bioportal
○ Agroportal
○ MatPortal
● FunOWL Implementation
● ROBOT-Python Implementation
● TODO: neo4j, ensmallen, mongo, solr, …
OAK: Key Concepts
Interface: What do I want to do?
● Basic Ontology Interface
● OboGraph Interface
● Owl Interface
● Simple Triples Interface
● Text Annotator Interface
● Validation Interface
● Ontology Changer Interface
● Mapping Retrieval Interface
● Lexical Mapping Interface
Implementation: How is it done behind the
scenes?
● Pronto Implementation
● SQL Database Implementation
○ SQLite
○ PostgreSQL
● SPARQL Implementation
○ Ontobee
○ Ubergraph
○ Local RDF File
● Ontoportal Implementation
○ Bioportal
○ Agroportal
○ MatPortal
● FunOWL Implementation
● ROBOT-Python Implementation
● TODO: neo4j, ensmallen, mongo, solr, …
Ontology Interfaces
Implementation
Selectors
https://incatools.github.io/ontology-
access-kit/selectors.html
Datamodels / Mini standards
https://incatools.github.io/ontology-
access-kit/datamodels/index.html
Datamodels / Mini standards
https://incatools.github.io/ontology-
access-kit/datamodels/index.html
https://incatools.github.io/ontology-access-kit/datamodels/text-annotator
Goal: Extensive Docs
Following diataxis.fr
Using sphinx
Goal: Extensive Docs
Sphinx autodoc uses liberally
Goal: Extensive Docs
Code-independent datamodel
docs
Glossary
Code aside, we really need
this!
Demo / Tutorial
Part 1: Command Line
● Basic lookup/search
● Different implementations
○ Obo
○ Ubergraph
○ OWL
○ Bioportal
● Using SQLite
● OboGraphViz
Part 2: Python usage
https://incatools.github.io/ontology-access-kit/intro
[Switch to demo / tutorial here]
https://incatools.github.io/ontology-access-kit/intro
Using SQLite
Why use the SQLite backend?
● No long tail expressivity loss
● It’s fast
○ No parse penalty: Once downloaded, access is instantaneous
○ Entailed_edge pre-loaded, for fast graph queries
○ SQLite is in general fast
○ Further optimizations easy - e.g concretizing views
My aliases
Behind the scenes
$ chebi -vv ancestors -p i CHEBI:15356
DEBUG:root:Ancestors query:
SELECT entailed_edge.subject AS entailed_edge_subject, entailed_edge.predicate AS entailed_edge_predicate,
entailed_edge.object AS entailed_edge_object
FROM entailed_edge
WHERE entailed_edge.subject IN (__[POSTCOMPILE_subject_1]) AND entailed_edge.predicate IN (__[POSTCOMPILE_predicate_1])
How to use SQLite
Method 1: Use ready-made OBO files
● protocol A
○ Download from S3
■ https://s3.amazonaws.com/bbop-sqlite/hp.db
● Protocol B
○ Download using semsql
■ semsql download obi -o obi.db
● Protocol C
○ Use the obo sqlite selector
■ runoak -i sqlite:obo:obi COMMAND
Method 2: build your own
How to use SQLite
Method 1: Use ready-made files Method 2: build your own
● Protocol A:
○ Install rdftab
○ Install relation-graph
○ Prepare rdf/xml (pre-merged) file
■ E.g obi.owl
○ semsql make obi.db
● Protocol B:
○ Use ODK docker image
○ semsql make –docker obi.db
■ Requires ODK v13.1
Plans to make this easier
Rdftab.rs
● Job: load “statements” table from RDF
● Currently only accepts RDF/XML
Make it easier to install:
● In Rust, so easy binding PyO3
● OR could write in Python
○ Don’t need the “stanza” functionality
Relation-graph
● Job: load entailed_edge table using a
reasoner
○ Only requires tiny OWL profile (SubC,
Some, Transitivity, Property Chain)
● Written in Scala
○ Possible souffle rewrite
Can we make part of python install?
● Proposed path:
○ Write reasoner using
https://github.com/ekzhang/crepe
■ (10 lines of datalog)
○ Provide PyO3 bindings
https://github.com/INCATools/semantic-sql/issues/41
OboGraphViz
cl viz -p i,p 'memory T-cell'
https://github.com/INCATools/obographviz
Installing
1. Install graphviz
2. npm install -g obographviz
Configuring
https://github.com/INCATools/ontology-access-kit/blob/main/src/oaklib/conf/obograph-style.json

More Related Content

What's hot

Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
Dongbum Kim
 
Cobrix – a COBOL Data Source for Spark
Cobrix – a COBOL Data Source for SparkCobrix – a COBOL Data Source for Spark
Cobrix – a COBOL Data Source for Spark
DataWorks Summit
 
Introduction to Smart Data Models
Introduction to Smart Data ModelsIntroduction to Smart Data Models
Introduction to Smart Data Models
FIWARE
 
One Ontology, One Data Set, Multiple Shapes with SHACL
One Ontology, One Data Set, Multiple Shapes with SHACLOne Ontology, One Data Set, Multiple Shapes with SHACL
One Ontology, One Data Set, Multiple Shapes with SHACL
Connected Data World
 
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data ScienceKnowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
Cambridge Semantics
 
Data Modeling for MongoDB
Data Modeling for MongoDBData Modeling for MongoDB
Data Modeling for MongoDB
MongoDB
 
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Jeff Z. Pan
 
Introduction to the BioLink datamodel
Introduction to the BioLink datamodelIntroduction to the BioLink datamodel
Introduction to the BioLink datamodel
Chris Mungall
 
How To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own DatasourceHow To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own Datasource
MongoDB
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
Luigi De Russis
 
Neo4j Bloom: Data Visualization for Everyone
Neo4j Bloom: Data Visualization for EveryoneNeo4j Bloom: Data Visualization for Everyone
Neo4j Bloom: Data Visualization for Everyone
Neo4j
 
Introduction to Apache Sqoop
Introduction to Apache SqoopIntroduction to Apache Sqoop
Introduction to Apache Sqoop
Avkash Chauhan
 
SHACL in Apache jena - ApacheCon2020
SHACL in Apache jena - ApacheCon2020SHACL in Apache jena - ApacheCon2020
SHACL in Apache jena - ApacheCon2020
andyseaborne
 
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principlesFOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
dgarijo
 
Large scale crawling with Apache Nutch
Large scale crawling with Apache NutchLarge scale crawling with Apache Nutch
Large scale crawling with Apache Nutch
Julien Nioche
 
Introduction of Knowledge Graphs
Introduction of Knowledge GraphsIntroduction of Knowledge Graphs
Introduction of Knowledge Graphs
Jeff Z. Pan
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
MongoDB
 
LOD(linked open data) part 1 lod 란 무엇인가
LOD(linked open data) part 1   lod 란 무엇인가LOD(linked open data) part 1   lod 란 무엇인가
LOD(linked open data) part 1 lod 란 무엇인가
LiST Inc
 
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on DatabricksCI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
Databricks
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
Provectus
 

What's hot (20)

Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
Linked Data의 RDF 어휘 이해하고 체험하기 - FOAF, SIOC, SKOS를 중심으로 -
 
Cobrix – a COBOL Data Source for Spark
Cobrix – a COBOL Data Source for SparkCobrix – a COBOL Data Source for Spark
Cobrix – a COBOL Data Source for Spark
 
Introduction to Smart Data Models
Introduction to Smart Data ModelsIntroduction to Smart Data Models
Introduction to Smart Data Models
 
One Ontology, One Data Set, Multiple Shapes with SHACL
One Ontology, One Data Set, Multiple Shapes with SHACLOne Ontology, One Data Set, Multiple Shapes with SHACL
One Ontology, One Data Set, Multiple Shapes with SHACL
 
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data ScienceKnowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
 
Data Modeling for MongoDB
Data Modeling for MongoDBData Modeling for MongoDB
Data Modeling for MongoDB
 
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
 
Introduction to the BioLink datamodel
Introduction to the BioLink datamodelIntroduction to the BioLink datamodel
Introduction to the BioLink datamodel
 
How To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own DatasourceHow To Connect Spark To Your Own Datasource
How To Connect Spark To Your Own Datasource
 
Programming the Semantic Web
Programming the Semantic WebProgramming the Semantic Web
Programming the Semantic Web
 
Neo4j Bloom: Data Visualization for Everyone
Neo4j Bloom: Data Visualization for EveryoneNeo4j Bloom: Data Visualization for Everyone
Neo4j Bloom: Data Visualization for Everyone
 
Introduction to Apache Sqoop
Introduction to Apache SqoopIntroduction to Apache Sqoop
Introduction to Apache Sqoop
 
SHACL in Apache jena - ApacheCon2020
SHACL in Apache jena - ApacheCon2020SHACL in Apache jena - ApacheCon2020
SHACL in Apache jena - ApacheCon2020
 
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principlesFOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
 
Large scale crawling with Apache Nutch
Large scale crawling with Apache NutchLarge scale crawling with Apache Nutch
Large scale crawling with Apache Nutch
 
Introduction of Knowledge Graphs
Introduction of Knowledge GraphsIntroduction of Knowledge Graphs
Introduction of Knowledge Graphs
 
MongoDB Schema Design
MongoDB Schema DesignMongoDB Schema Design
MongoDB Schema Design
 
LOD(linked open data) part 1 lod 란 무엇인가
LOD(linked open data) part 1   lod 란 무엇인가LOD(linked open data) part 1   lod 란 무엇인가
LOD(linked open data) part 1 lod 란 무엇인가
 
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on DatabricksCI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
 
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMakerMLOps and Reproducible ML on AWS with Kubeflow and SageMaker
MLOps and Reproducible ML on AWS with Kubeflow and SageMaker
 

Similar to Ontology Access Kit_ Workshop Intro Slides.pptx

Presentation of OpenNLP
Presentation of OpenNLPPresentation of OpenNLP
Presentation of OpenNLPRobert Viseur
 
Apache spark on planet scale
Apache spark on planet scaleApache spark on planet scale
Apache spark on planet scale
Denis Chapligin
 
GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015
Fabrízio Mello
 
NOSQL Databases for the .NET Developer
NOSQL Databases for the .NET DeveloperNOSQL Databases for the .NET Developer
NOSQL Databases for the .NET DeveloperJesus Rodriguez
 
Regal - a Repository for Electronic Documents and Bibliographic Data
Regal - a Repository for Electronic Documents and Bibliographic DataRegal - a Repository for Electronic Documents and Bibliographic Data
Regal - a Repository for Electronic Documents and Bibliographic DataFelix Ostrowski
 
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
The ECM world from the point of view of Alfresco - Linux Day 2013 - RomeThe ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
Piergiorgio Lucidi
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
Mukesh Singh
 
Building OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web toolsBuilding OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web tools
Melanie Courtot
 
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistryOpen Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
Marcus Hanwell
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
gagravarr
 
Apache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriApache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-Ari
Demi Ben-Ari
 
SDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the whySDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the why
Korea Sdec
 
Netflix running Presto in the AWS Cloud
Netflix running Presto in the AWS CloudNetflix running Presto in the AWS Cloud
Netflix running Presto in the AWS CloudZhenxiao Luo
 
HelsinkiJS - Clojurescript for Javascript Developers
HelsinkiJS - Clojurescript for Javascript DevelopersHelsinkiJS - Clojurescript for Javascript Developers
HelsinkiJS - Clojurescript for Javascript Developers
Juho Teperi
 
SciPipe - A light-weight workflow library inspired by flow-based programming
SciPipe - A light-weight workflow library inspired by flow-based programmingSciPipe - A light-weight workflow library inspired by flow-based programming
SciPipe - A light-weight workflow library inspired by flow-based programming
Samuel Lampa
 
Find your way in Graph labyrinths
Find your way in Graph labyrinthsFind your way in Graph labyrinths
Find your way in Graph labyrinthsDaniel Camarda
 
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Holden Karau
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...
Holden Karau
 
Apache Jena Elephas and Friends
Apache Jena Elephas and FriendsApache Jena Elephas and Friends
Apache Jena Elephas and Friends
Rob Vesse
 
Apache Arrow -- Cross-language development platform for in-memory data
Apache Arrow -- Cross-language development platform for in-memory dataApache Arrow -- Cross-language development platform for in-memory data
Apache Arrow -- Cross-language development platform for in-memory data
Wes McKinney
 

Similar to Ontology Access Kit_ Workshop Intro Slides.pptx (20)

Presentation of OpenNLP
Presentation of OpenNLPPresentation of OpenNLP
Presentation of OpenNLP
 
Apache spark on planet scale
Apache spark on planet scaleApache spark on planet scale
Apache spark on planet scale
 
GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015GSoC2014 - Uniritter Presentation May, 2015
GSoC2014 - Uniritter Presentation May, 2015
 
NOSQL Databases for the .NET Developer
NOSQL Databases for the .NET DeveloperNOSQL Databases for the .NET Developer
NOSQL Databases for the .NET Developer
 
Regal - a Repository for Electronic Documents and Bibliographic Data
Regal - a Repository for Electronic Documents and Bibliographic DataRegal - a Repository for Electronic Documents and Bibliographic Data
Regal - a Repository for Electronic Documents and Bibliographic Data
 
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
The ECM world from the point of view of Alfresco - Linux Day 2013 - RomeThe ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
The ECM world from the point of view of Alfresco - Linux Day 2013 - Rome
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
 
Building OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web toolsBuilding OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web tools
 
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistryOpen Chemistry, JupyterLab and data: Reproducible quantum chemistry
Open Chemistry, JupyterLab and data: Reproducible quantum chemistry
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
Apache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-AriApache Spark 101 - Demi Ben-Ari
Apache Spark 101 - Demi Ben-Ari
 
SDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the whySDEC2011 Mahout - the what, the how and the why
SDEC2011 Mahout - the what, the how and the why
 
Netflix running Presto in the AWS Cloud
Netflix running Presto in the AWS CloudNetflix running Presto in the AWS Cloud
Netflix running Presto in the AWS Cloud
 
HelsinkiJS - Clojurescript for Javascript Developers
HelsinkiJS - Clojurescript for Javascript DevelopersHelsinkiJS - Clojurescript for Javascript Developers
HelsinkiJS - Clojurescript for Javascript Developers
 
SciPipe - A light-weight workflow library inspired by flow-based programming
SciPipe - A light-weight workflow library inspired by flow-based programmingSciPipe - A light-weight workflow library inspired by flow-based programming
SciPipe - A light-weight workflow library inspired by flow-based programming
 
Find your way in Graph labyrinths
Find your way in Graph labyrinthsFind your way in Graph labyrinths
Find your way in Graph labyrinths
 
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...
 
Apache Jena Elephas and Friends
Apache Jena Elephas and FriendsApache Jena Elephas and Friends
Apache Jena Elephas and Friends
 
Apache Arrow -- Cross-language development platform for in-memory data
Apache Arrow -- Cross-language development platform for in-memory dataApache Arrow -- Cross-language development platform for in-memory data
Apache Arrow -- Cross-language development platform for in-memory data
 

More from Chris Mungall

MADICES Mungall 2022.pptx
MADICES Mungall 2022.pptxMADICES Mungall 2022.pptx
MADICES Mungall 2022.pptx
Chris Mungall
 
Scaling up semantics; lessons learned across the life sciences
Scaling up semantics; lessons learned across the life sciencesScaling up semantics; lessons learned across the life sciences
Scaling up semantics; lessons learned across the life sciences
Chris Mungall
 
LinkML Intro (for Monarch devs)
LinkML Intro (for Monarch devs)LinkML Intro (for Monarch devs)
LinkML Intro (for Monarch devs)
Chris Mungall
 
Experiences in the biosciences with the open biological ontologies foundry an...
Experiences in the biosciences with the open biological ontologies foundry an...Experiences in the biosciences with the open biological ontologies foundry an...
Experiences in the biosciences with the open biological ontologies foundry an...
Chris Mungall
 
All together now: piecing together the knowledge graph of life
All together now: piecing together the knowledge graph of lifeAll together now: piecing together the knowledge graph of life
All together now: piecing together the knowledge graph of life
Chris Mungall
 
Collaboratively Creating the Knowledge Graph of Life
Collaboratively Creating the Knowledge Graph of LifeCollaboratively Creating the Knowledge Graph of Life
Collaboratively Creating the Knowledge Graph of Life
Chris Mungall
 
Representation of kidney structures in Uberon
Representation of kidney structures in UberonRepresentation of kidney structures in Uberon
Representation of kidney structures in Uberon
Chris Mungall
 
SparqlProg (BioHackathon 2019)
SparqlProg (BioHackathon 2019)SparqlProg (BioHackathon 2019)
SparqlProg (BioHackathon 2019)
Chris Mungall
 
Ontology Development Kit: Bio-Ontologies 2019
Ontology Development Kit: Bio-Ontologies 2019Ontology Development Kit: Bio-Ontologies 2019
Ontology Development Kit: Bio-Ontologies 2019
Chris Mungall
 
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
Chris Mungall
 
Uberon: opening up to community contributions
Uberon: opening up to community contributionsUberon: opening up to community contributions
Uberon: opening up to community contributions
Chris Mungall
 
Modeling exposure events and adverse outcome pathways using ontologies
Modeling exposure events and adverse outcome pathways using ontologiesModeling exposure events and adverse outcome pathways using ontologies
Modeling exposure events and adverse outcome pathways using ontologies
Chris Mungall
 
Causal reasoning using the Relation Ontology
Causal reasoning using the Relation OntologyCausal reasoning using the Relation Ontology
Causal reasoning using the Relation Ontology
Chris Mungall
 
US2TS presentation on Gene Ontology
US2TS presentation on Gene OntologyUS2TS presentation on Gene Ontology
US2TS presentation on Gene Ontology
Chris Mungall
 
Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015
Chris Mungall
 
ENVO GSC 2015
ENVO GSC 2015ENVO GSC 2015
ENVO GSC 2015
Chris Mungall
 
Mungall keynote-biocurator-2017
Mungall keynote-biocurator-2017Mungall keynote-biocurator-2017
Mungall keynote-biocurator-2017
Chris Mungall
 
Kboom phenoday-2016
Kboom phenoday-2016Kboom phenoday-2016
Kboom phenoday-2016
Chris Mungall
 
BioMake PAG 2017
BioMake PAG 2017 BioMake PAG 2017
BioMake PAG 2017
Chris Mungall
 
GIGA2 Structuring Phenotype Data
GIGA2 Structuring Phenotype DataGIGA2 Structuring Phenotype Data
GIGA2 Structuring Phenotype Data
Chris Mungall
 

More from Chris Mungall (20)

MADICES Mungall 2022.pptx
MADICES Mungall 2022.pptxMADICES Mungall 2022.pptx
MADICES Mungall 2022.pptx
 
Scaling up semantics; lessons learned across the life sciences
Scaling up semantics; lessons learned across the life sciencesScaling up semantics; lessons learned across the life sciences
Scaling up semantics; lessons learned across the life sciences
 
LinkML Intro (for Monarch devs)
LinkML Intro (for Monarch devs)LinkML Intro (for Monarch devs)
LinkML Intro (for Monarch devs)
 
Experiences in the biosciences with the open biological ontologies foundry an...
Experiences in the biosciences with the open biological ontologies foundry an...Experiences in the biosciences with the open biological ontologies foundry an...
Experiences in the biosciences with the open biological ontologies foundry an...
 
All together now: piecing together the knowledge graph of life
All together now: piecing together the knowledge graph of lifeAll together now: piecing together the knowledge graph of life
All together now: piecing together the knowledge graph of life
 
Collaboratively Creating the Knowledge Graph of Life
Collaboratively Creating the Knowledge Graph of LifeCollaboratively Creating the Knowledge Graph of Life
Collaboratively Creating the Knowledge Graph of Life
 
Representation of kidney structures in Uberon
Representation of kidney structures in UberonRepresentation of kidney structures in Uberon
Representation of kidney structures in Uberon
 
SparqlProg (BioHackathon 2019)
SparqlProg (BioHackathon 2019)SparqlProg (BioHackathon 2019)
SparqlProg (BioHackathon 2019)
 
Ontology Development Kit: Bio-Ontologies 2019
Ontology Development Kit: Bio-Ontologies 2019Ontology Development Kit: Bio-Ontologies 2019
Ontology Development Kit: Bio-Ontologies 2019
 
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
US2TS: Reasoning over multiple open bio-ontologies to make machines and human...
 
Uberon: opening up to community contributions
Uberon: opening up to community contributionsUberon: opening up to community contributions
Uberon: opening up to community contributions
 
Modeling exposure events and adverse outcome pathways using ontologies
Modeling exposure events and adverse outcome pathways using ontologiesModeling exposure events and adverse outcome pathways using ontologies
Modeling exposure events and adverse outcome pathways using ontologies
 
Causal reasoning using the Relation Ontology
Causal reasoning using the Relation OntologyCausal reasoning using the Relation Ontology
Causal reasoning using the Relation Ontology
 
US2TS presentation on Gene Ontology
US2TS presentation on Gene OntologyUS2TS presentation on Gene Ontology
US2TS presentation on Gene Ontology
 
Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015
 
ENVO GSC 2015
ENVO GSC 2015ENVO GSC 2015
ENVO GSC 2015
 
Mungall keynote-biocurator-2017
Mungall keynote-biocurator-2017Mungall keynote-biocurator-2017
Mungall keynote-biocurator-2017
 
Kboom phenoday-2016
Kboom phenoday-2016Kboom phenoday-2016
Kboom phenoday-2016
 
BioMake PAG 2017
BioMake PAG 2017 BioMake PAG 2017
BioMake PAG 2017
 
GIGA2 Structuring Phenotype Data
GIGA2 Structuring Phenotype DataGIGA2 Structuring Phenotype Data
GIGA2 Structuring Phenotype Data
 

Recently uploaded

Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 

Recently uploaded (20)

Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 

Ontology Access Kit_ Workshop Intro Slides.pptx

  • 1. Ontology Access Kit (OAK) workshop / soft launch 2022-06-15 https://incatools.github.io/ontology-access-kit https://bit.ly/get-oak
  • 2. Agenda Part 1 (first hour) ● Background (these slides): ○ Motivation & Background ○ Key Concepts ● Demo/Tutorial ○ Installation ○ Command Line Usage ● Example apps: ○ Mapping Walker ○ … Part 2 (second hour) ● Roadmap and milestones https://github.com/INCATools/ontology- access-kit/milestones ● Using SQLite ● Code walkthrough ○ LexMatch ○ SemSim ● Design Decisions ○ Nomenclature ○ Architecture
  • 3. Why would I want a generic ontology library? ● To build data infrastructure ○ Data repositories ○ Knowledge bases ● To clean and analyze data ○ Data annotation and alignment ○ Data interpretation and discovery ■ gene set enrichment and pathway analysis ■ Semantic similarity and knowledge base embedding ■ Rolling up data ● To explore and build ontologies ○ Visualization, lookup, mapping, quality control
  • 4. Why would I want ANOTHER generic ontology library? “I already use X, it’s great!” I assume if you’re here, then X isn’t a great fit for all your problems
  • 5. Methods of ontology access (i.e computational use of ontologies) External API or query server REST-ish API ● BioPortal / OntoPortal ● OLS Query Interface (SPARQL) ● Ubergraph ● Ontobee
  • 6. Methods of ontology access (i.e computational use of ontologies) External API or query server REST-ish API ● BioPortal / OntoPortal ● OLS Query Interface (SPARQL) ● Ubergraph ● Ontobee Local File ● RDF/OWL ● OBO Format ● OBO Json Libraries ● Pronto/fastobo ● OWLAPI ● FunOWL ● OwlReady ● Obonet ● Or simply: Curl/requests
  • 7. Advantages and disadvantages of different methods External API or query server Advantages: ● No local download necessary ● Minimal local compute Disadvantages: ● Doesn’t have my ontology/version ● Doesn’t do the thing I need ○ Many operations are more suited to in- memory processing ○ Multi high-latency call antipattern ● Occasional downtime [counterpoint: run service locally]
  • 8. Advantages and disadvantages of different methods External API or query server Advantages: ● No local download necessary ● Minimal local compute Disadvantages: ● Doesn’t have my ontology/version ● Doesn’t do the thing I need ○ Many operations are more suited to in- memory processing ○ Multi high-latency call antipattern ● Occasional downtime [counterpoint: run service locally] Local File Advantages ● Control over ontology/version ● Efficient operations (e.g. graph/recursive) Disadvantages ● Doesn’t scale for long-tail sized ontologies ○ PRO, CHEBI, NCBITaxon Increased effort / increased control
  • 9. The format/datamodel landscape OWL, RDF ● Great for communicating to OWL reasoners ● OWL and RDF are two datamodels, multiple formats… ● Wrong abstraction for many problems ○ Triples != Edges ○ Axioms != Edges ○ Most code using OWL written by non-OWL gurus is dangerously wrong ● Poor historic support outside JVM ● Poor scaling for long-tail ontologies ○ Even mid-size ontologies like Uberon are slow to parse with rdflib https://www.w3.org/TR/owl2-primer Use of OWL within the Gene Ontology Christopher J Mungall, Heiko Dietze, David Osumi-Sutherland (OWLED) doi: https://doi.org/10.1101/010090
  • 10. The format/datamodel landscape OBO Format ● Poor for long-tail of expressivity ○ Good enough for 95% of purposes ○ Many rarely used OWL constructs can’t be expressed ○ Poor internationalization ● High hidden legacy cost of some design decisions ○ E.g. identifiers ● Parsing ○ Easy to do quick hacky parsers ○ Surprisingly hard to write a robust parser ● Not used outside biology ● Impossible to wean bioinformaticians off it https://owlcollab.github.io/oboformat/doc/obo-syntax.html
  • 11. The format/datamodel landscape OBO JSON ● Designed for the long-tail ○ Core structures intended to serve 95% of purposes in an easy fashion ○ Additional constructs can be added for remaining 5% ● Low uptake https://github.com/geneontology/obographs https://douroucouli.wordpress.com/2016/10/04/a-developer-friendly-json-exchange-format-for-ontologies
  • 12. The format/datamodel landscape Other options ● Ad-hoc TSVs ● RRF ● SKOS
  • 13. Existing Ontology Libraries ● There is a multitude of ontology libraries ● For brevity we will highlight a few key ones ○ Emphasis on Python
  • 14. OWLAPI (Java) ● Complete support for all OWL specifications ○ This is highly non-trivial!!! ● Only way to directly communicate with multiple reasoners ● Has been indispensable for ontology development cycle ○ ROBOT, Protege ● Less widely used for ontology application cycle ● Challenges: ○ JVM ○ Size long-tail: Local file / memory bound, no DBMS access ○ OWL is not the right level of abstraction for many problems https://github.com/owlcs/owlapi
  • 15. FunOWL (Python) ● Partial support for OWL specifications ○ Read: Functional ○ Write: Functional, RDF ○ Not intended for communication with reasoners ● Less well supported ○ But does what is in scope quite well https://github.com/hsolbrig/funowl
  • 16. Horned OWL (Rust) ● Rust OWL library ○ Implements all of OWL2 ○ Faster than OWL API ● Experimental python bindings ○ https://github.com/jannahastings/py-horned-owl https://github.com/phillord/horned-owl
  • 17. Pronto (Python, with Rust bindings) ● Support for OBO-Format and OBO-Format OWL profile ● Pros: Python, Fast (fastobo), and robust ● Cons (all related to coupling with OBO-Format): ○ Most ontologies don’t conform to its strict profile (fixable) ○ long-tail of expressivity (hard to fix) https://github.com/althonos/pronto https://github.com/fastobo/fastobo
  • 18. Notable mentions ● OWL-y ○ SCOWL ○ OwlReady2 ● Graph-y ○ Nxontology - https://github.com/related-sciences/nxontology ○ obonet ○ Ontobio ○ Phenol (Java) ○ OntologyX [R] ● API wrappers ○ Rols [R]
  • 19. Existing APIs and Endpoints ● SPARQL ● SQL
  • 20. owlery ● Web API for OWL ● Supports reasoning ● Easy to stand up https://github.com/phenoscape/owlery
  • 21. BioPortal ● Comprehensive and broad ○ Nearly 1k ontologies ○ Up-to-date ● Robust, well-documented APIs ○ Term access ○ Automated Mappings ○ Annotator ● API key required ● Broader than biomedicine; OntoPortal ○ MatPortal ○ AgroPortal ○ EcoPortal https://data.bioontology.org/documentation
  • 22. OLS: Ontology Lookup Service ● Less comprehensive but curated for quality ○ 275 ontologies ○ Up-to-date ● Robust, well-documented APIs ○ Term access ○ Curated Mappings (OxO) ○ Annotator (ZOOMA) ● Many local Docker installations https://www.ebi.ac.uk/ols/docs/api
  • 23. OntoBee SPARQL endpoint ● OBO plus others ● SPARQL endpoint ○ More expressive than an API ○ But sometimes more work to express yourself! ● Main drawback: ○ RDF/SPARQL not the right level of abstraction for many tasks ■ E.g. impossible to get part-ancestors https://www.ontobee.org/sparql
  • 24. Ubergraph SPARQL endpoint ● Subset of OBO Library ○ (mostly) “coherent collection” ● SPARQL endpoint ● Relation Graph pre-calculated ○ Part-of ancestor queries is easy! https://github.com/INCATools/ubergraph
  • 25. Ubergraph SPARQL endpoint uses Relation Graph ● Edges (direct and indirect) as simple triples https://github.com/balhoff/relation-graph Parts of organs that are parts of abdomens
  • 26. Relational Database: Semantic SQL ● Uses rdftab (Rust) for fast loading into triple tables ● Uses relation-graph (Scala) for entailed edge tables ● Uses SQL views to provide higher level constructs (OWL and RG) ● Python ORM for those that like that sort of thing https://github.com/INCATools/semantic-sql/
  • 27. Relational Database: Semantic SQL ● Uses rdftab (Rust) for fast loading into triple tables ● Uses relation-graph (Scala) for entailed edge tables ● Uses SQL views to provide higher level constructs (OWL and RG) ● Python ORM for those that like that sort of thing https://github.com/INCATools/semantic-sql/ Find terms with mappings to Allen Brain Atlas that are not part of the brain
  • 28. Notable Mentions: Endpoints ● Aber-OWL (OBO triplestore) ○ Supports SPARQL and DL queries ● SciGraph (neo4j) ● …
  • 29. With me so far?
  • 30. Just tell me which one to use to do X Historically we have said: IT DEPENDS ON X (and Y and Z) ● End result: a multiple square pegs and round holes
  • 31. OAK: The People’s Pluralistic Python Ontology Library Support multiple conceptualizations of what an ontology is ● A relational graph for data analysis ● A collection of logical statements ● A vocabulary for text mining ● A collection of concepts and mappings for tagging data ● Terminological units plus rich metadata (e.g. conforming to OMO datamodel) These are all to some extent interlocking
  • 32. OAK: The People’s Pluralistic Python Ontology Library Support multiple conceptualizations of what an ontology is ● A relational graph for data analysis ● A collection of logical statements ● A vocabulary for text mining ● A collection of concepts and mappings for tagging data ● Terminological units plus rich metadata (e.g. conforming to OMO datamodel) These are all to some extent interlocking Support multiple modes of access ● Local files ○ obo, json, rdf, owl ● Remote API services ○ Ontology portals ○ Large scale annotation ● Local or remote database ○ SPARQL ○ SQL
  • 33. OAK: The People’s Pluralistic Python Ontology Library Support multiple conceptualizations of what an ontology is ● A relational graph for data analysis ● A collection of logical statements ● A vocabulary for text mining ● A collection of concepts and mappings for tagging data ● Terminological units plus rich metadata (e.g. conforming to OMO datamodel) These are all to some extent interlocking Support multiple modes of access ● Local files ○ obo, json, rdf, owl ● Remote API services ○ Ontology portals ○ Large scale annotation ● Local or remote database ○ SPARQL ○ SQL Mid-term goal: Speed
  • 34. OAK: Key Concepts Interface: What do I want to do?
  • 35. OAK: Key Concepts Interface: What do I want to do? Implementation: How is it done behind the scenes?
  • 36. OAK: Key Concepts Interface: What do I want to do? ● Basic Ontology Interface ● OboGraph Interface ● Owl Interface ● Simple Triples Interface ● Text Annotator Interface ● Validation Interface ● Ontology Changer Interface ● Mapping Retrieval Interface ● Lexical Mapping Interface Implementation: How is it done behind the scenes?
  • 37. OAK: Key Concepts Interface: What do I want to do? ● Basic Ontology Interface ● OboGraph Interface ● Owl Interface ● Simple Triples Interface ● Text Annotator Interface ● Validation Interface ● Ontology Changer Interface ● Mapping Retrieval Interface ● Lexical Mapping Interface Implementation: How is it done behind the scenes? ● Pronto Implementation ● SQL Database Implementation ○ SQLite ○ PostgreSQL ● SPARQL Implementation ○ Ontobee ○ Ubergraph ○ Local RDF File ● Ontoportal Implementation ○ Bioportal ○ Agroportal ○ MatPortal ● FunOWL Implementation ● ROBOT-Python Implementation ● TODO: neo4j, ensmallen, mongo, solr, …
  • 38. OAK: Key Concepts Interface: What do I want to do? ● Basic Ontology Interface ● OboGraph Interface ● Owl Interface ● Simple Triples Interface ● Text Annotator Interface ● Validation Interface ● Ontology Changer Interface ● Mapping Retrieval Interface ● Lexical Mapping Interface Implementation: How is it done behind the scenes? ● Pronto Implementation ● SQL Database Implementation ○ SQLite ○ PostgreSQL ● SPARQL Implementation ○ Ontobee ○ Ubergraph ○ Local RDF File ● Ontoportal Implementation ○ Bioportal ○ Agroportal ○ MatPortal ● FunOWL Implementation ● ROBOT-Python Implementation ● TODO: neo4j, ensmallen, mongo, solr, …
  • 41. Datamodels / Mini standards https://incatools.github.io/ontology- access-kit/datamodels/index.html
  • 42. Datamodels / Mini standards https://incatools.github.io/ontology- access-kit/datamodels/index.html https://incatools.github.io/ontology-access-kit/datamodels/text-annotator
  • 43. Goal: Extensive Docs Following diataxis.fr Using sphinx
  • 44. Goal: Extensive Docs Sphinx autodoc uses liberally
  • 46. Glossary Code aside, we really need this!
  • 47. Demo / Tutorial Part 1: Command Line ● Basic lookup/search ● Different implementations ○ Obo ○ Ubergraph ○ OWL ○ Bioportal ● Using SQLite ● OboGraphViz Part 2: Python usage https://incatools.github.io/ontology-access-kit/intro
  • 48. [Switch to demo / tutorial here] https://incatools.github.io/ontology-access-kit/intro
  • 49. Using SQLite Why use the SQLite backend? ● No long tail expressivity loss ● It’s fast ○ No parse penalty: Once downloaded, access is instantaneous ○ Entailed_edge pre-loaded, for fast graph queries ○ SQLite is in general fast ○ Further optimizations easy - e.g concretizing views
  • 51. Behind the scenes $ chebi -vv ancestors -p i CHEBI:15356 DEBUG:root:Ancestors query: SELECT entailed_edge.subject AS entailed_edge_subject, entailed_edge.predicate AS entailed_edge_predicate, entailed_edge.object AS entailed_edge_object FROM entailed_edge WHERE entailed_edge.subject IN (__[POSTCOMPILE_subject_1]) AND entailed_edge.predicate IN (__[POSTCOMPILE_predicate_1])
  • 52. How to use SQLite Method 1: Use ready-made OBO files ● protocol A ○ Download from S3 ■ https://s3.amazonaws.com/bbop-sqlite/hp.db ● Protocol B ○ Download using semsql ■ semsql download obi -o obi.db ● Protocol C ○ Use the obo sqlite selector ■ runoak -i sqlite:obo:obi COMMAND Method 2: build your own
  • 53. How to use SQLite Method 1: Use ready-made files Method 2: build your own ● Protocol A: ○ Install rdftab ○ Install relation-graph ○ Prepare rdf/xml (pre-merged) file ■ E.g obi.owl ○ semsql make obi.db ● Protocol B: ○ Use ODK docker image ○ semsql make –docker obi.db ■ Requires ODK v13.1
  • 54. Plans to make this easier Rdftab.rs ● Job: load “statements” table from RDF ● Currently only accepts RDF/XML Make it easier to install: ● In Rust, so easy binding PyO3 ● OR could write in Python ○ Don’t need the “stanza” functionality Relation-graph ● Job: load entailed_edge table using a reasoner ○ Only requires tiny OWL profile (SubC, Some, Transitivity, Property Chain) ● Written in Scala ○ Possible souffle rewrite Can we make part of python install? ● Proposed path: ○ Write reasoner using https://github.com/ekzhang/crepe ■ (10 lines of datalog) ○ Provide PyO3 bindings https://github.com/INCATools/semantic-sql/issues/41
  • 55. OboGraphViz cl viz -p i,p 'memory T-cell' https://github.com/INCATools/obographviz
  • 56. Installing 1. Install graphviz 2. npm install -g obographviz

Editor's Notes

  1. Doesn’t include closure