SlideShare una empresa de Scribd logo
1 de 60
LinkML
Linked (Open) Data Modeling Language
Yosemite Presentation April 2021
Harold Solbrig
Chris Mungall
These slides:
https://tinyurl.com/linkml-2021-april 1
2
Interoperability Roadmap
Healthcare
Information
Interoperability
Standardize
the Standards
Crowdsource
Translations
Incentivize
RDF as a Universal
Information
Representation
http://YosemiteProject.org/
3
Interoperability Roadmap
Healthcare
Information
Interoperability
Standardize
the Standards
Crowdsource
Translations
Incentivize
RDF as a Universal
Information
Representation
http://YosemiteProject.org/
Background on
Semantic Web
4
“For the semantic web to function,
computers must have access to
structured collections of information and
sets of inference rules that they can use
to conduct automated reasoning.”
“Traditional knowledge-representation
systems typically have been centralized,
requiring everyone to share exactly the
same definition of common concepts
such as "parent" or "vehicle." But central
control is stifling, and increasing the size
and scope of such a system rapidly
becomes unmanageable.”
5
Vision of the
Semantic Web:
information →
meaning
“The Semantic Web is not a
separate Web but an
extension of the current one,
in which information is given
well-defined meaning, better
enabling computers and
people to work in
cooperation.”
RDF for machines
Decentralized information networks
Ontologies
Automatic Agents
Digital Signatures
Identify with resolvable http URIs
Prose for humans
Centralized data repositories
Free text
Manual extraction / data wrangling
Unsigned
Identify with strings
6
The Semantic Web 20 years Later
Progress
- Web is ubiquitous
- URIs are used
- Agents abound
- Digital signatures and security
have advanced
- Semantics are improving
schema.org
(Not so much) progress
- Decentralization -- Web is
decentralized, but aggregators
dominate (Solid project)
- Semantics -- ontologies abound,
but useful ontologies… not so
much so.
- RDF -- still an afterthought.
Informal models (JSON) or formal
schemas, but semantics are still
largely textual
7
Biolink
Model
What lead to LinkML
The charge from NCATS:
● Create a Knowledge Graph Schema
● Encompass all biology from molecules through to clinical entities
● Get 20 different sites using the same data model
○ (oh: Only a handful of which use RDF/OWL)
● Do it quickly and break new ground in Translational Science
8
NationalMicro
biome Data
Collaborative
Goal
● Make multi-omics microbiome data FAIR
○ Environments
○ Metagenomes
○ Metatranscriptomes
○ Metabolomics
○ Metaproteomics
● Leverage existing ontologies and
standards
● Enable discovery in microbiome science
9
Metamodeling silos
SKOS
JSON
Schema
UML,
OO
OWL
10
GraphQL
ProtoBuf
checklists
CDEs
LinkML Philosophy
● Simplicity: YAML source files managed in GitHub
● Multimodal
○ JSON, RDF, Property Graphs
○ Open and Closed World use cases
● Stealth Semantics
○ Let them have JSON and OO Python Data Classes
○ Shh, secretly it’s JSON-LD
● Be a parasite
○ Compiles down to other frameworks; we can then leverage their toolchains
■ JSON-Schema: validation of JSON
■ ShEx: validation of RDF graphs
■ GraphQL: APIs
■ OWL: reasoning, browsers/registries
■ JSON-LD Contexts
11
SKOS
JSON
Schema
UML,
OO
OWL
12
LinkML
BiolinkML: The LinkML predecessor
https://github.com/biolink/biolinkml/
13
LinkML
“Goals”
Distributed, federated models
● Easy to create and maintain
● Available in multiple forms
● URL Addressable
● Integrated with Github idiom
Automatic tool generation
● Loaders / dumpers
● Format transformations
Baked in semantics
● Everything gets a URL
● Baked in RDF and Semantic links
○ Invisible except when necessary
● Semantic driven model transformation via
RDF
○ JSON-LD and ShEx under the
covers
○ JSON / YAML / CSV on the surface 14
The Yosemite vision
15
3
1
2
The Yosemite Vision of Data Translation
16
Source Target
Translate based on
crowdsourced rules
Adapted from Graphic by David Booth
3
1
2
...was not without its problems
Adapted from Graphic by David Booth 17
Source Target
Translate based on
crowdsourced rules
- Source doesn’t include formal (RDF)
semantics. 3rd parties must create, validate
and maintain these semantics
- RDF doesn’t lend itself to crowdsourcing
- Structural and semantic differences
mean that both the source and target
need to support not just semantics but
shared semantics.
LinkML target model
LinkML source model
LinkML: Embed RDF semantics directly in the Source and target
models; Augment the translation process with ontology and reasoners.
18
Ontology Reasoners
Introduction to LinkML
19
id: https://example.org/linkml/hello-world
title: Really basic LinkML model
name: hello-world
license: https://creativecommons.org/publicdomain/zero/1.0/
version: 0.0.1
prefixes:
linkml: https://w3id.org/linkml/
sdo: https://schema.org/
ex: https://example.org/linkml/hello-world/
default_prefix: ex
default_curi_maps:
- semweb_context
imports:
- linkml:types
classes:
Person:
description: Minimal information about a person
class_uri: sdo:Person
attributes:
id:
identifier: true
slot_uri: sdo:taxID
first_name:
required: true
slot_uri: sdo:givenName
multivalued: true
last_name:
required: true
slot_uri: sdo:familyName
knows:
range: Person
multivalued: true
slot_uri: foaf:knows
Metadata
Dependencies
Namespaces
Actual Model
A sample LinkML Schema
20
id: https://example.org/linkml/hello-world
title: Really basic LinkML model
name: hello-world
license: https://creativecommons.org/publicdomain/zero/1.0/
version: 0.0.1
prefixes:
linkml: https://w3id.org/linkml/
sdo: https://schema.org/
ex: https://example.org/linkml/hello-world/
default_prefix: ex
default_curi_maps:
- semweb_context
imports:
- linkml:types
classes:
Person:
description: Minimal information about a person
class_uri: sdo:Person
attributes:
id:
identifier: true
slot_uri: sdo:taxID
first_name:
required: true
slot_uri: sdo:givenName
multivalued: true
last_name:
required: true
slot_uri: sdo:familyName
knows:
range: Person
multivalued: true
slot_uri: foaf:knows
Metadata
Dependencies
Namespaces
Actual Model
LinkML RDF is hidden in plain sight
21
LinkML parser allows different frameworks to be used in different contexts
MyModel
Documentation
OWL
JSON Schema
ShEx Schema
Schema.py
GraphQL Schema
LinkML Schema
JSONLD Context
. . .
LinkML
parser
22
LinkML automates the documentation process
Schema
Documentation
OWL
JSON Schema
ShEx Schema
Schema.py
GraphQL Schema
LinkML Schema
JSONLD Context
. . .
LinkML
parser
23
Sample model documentation output
https://hsolbrig.github.io/sample_model/docs
24
LinkML can generate a variety of conforming schemas
Schema
OWL
JSON Schema
ShEx Schema
Schema.py
GraphQL Schema
Schema Source
JSONLD Context
. . .
LinkML
parser
25
BASE <https://example.org/linkml/hello-world/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX sdo: <https://schema.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
<String> xsd:string
<Person> CLOSED {
( $<Person_tes> ( sdo:givenName @<String> + ;
sdo:familyName @<String> ;
foaf:knows @<Person> *
) ;
rdf:type [ sdo:Person ]
)
}
"$id": "https://example.org/linkml/person",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Person": {
"additionalProperties": false,
"description": "Minimal information about a person",
"properties": {
"first_name": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"type": "string"
},
...
Shape Expressions (ShEx) Schema
JSON Schema
type Person
{
id: String!
firstName: [String]!
lastName: String!
knows: [Person]
}
Graphql Schema
Sample LinkML generated schemas
26
LinkML can also emit OWL
27
LinkML can also be used to represent ontology
28
OWL derived from
Biolink Model
LinkML models can be translated to JSON-LD context
Schema
OWL
JSON Schema
ShEx Schema
Schema.py
GraphQL Schema
Schema Source
JSONLD Context
. . .
LinkML
parser
29
{
"@context": {
"ex": "https://example.org/linkml/hello-world/",
"foaf": "http://xmlns.com/foaf/0.1/",
"linkml": "https://w3id.org/linkml/",
"sdo": "https://schema.org/",
"@vocab": "https://example.org/linkml/hello-world/",
"first_name": {
"@id": "sdo:givenName"
},
"id": "@id",
"knows": {
"@type": "@id",
"@id": "foaf:knows"
},
"last_name": {
"@id": "sdo:familyName"
},
"Person": {
"@id": "sdo:Person"
}
}
}
A sample JSON-LD
context in use
https://tinyurl.com/s6keujhm
30
LinkML can emit python
Schema
Documentation
OWL
JSON Schema
ShEx Schema
Schema.py
GraphQL Schema
Schema Source
JSONLD Context
. . .
LinkML
parser
31
# Types
class String(str):
type_class_uri = XSD.string
type_class_curie = "xsd:string"
type_name = "string"
type_model_uri = EX.String
@dataclass
class Person(YAMLRoot):
"""
Minimal information about a person
"""
id: Union[str, PersonId] = None
first_name: Union[str, List[str]] = None
last_name: str = None
knows: Optional[Union[Union[str, PersonId], List[Union[str, PersonId]]]] = empty_list()
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
if self.id is None:
raise ValueError("id must be supplied")
if not isinstance(self.id, PersonId):
self.id = PersonId(self.id)
if self.first_name is None:
raise ValueError("first_name must be supplied")
elif not isinstance(self.first_name, list):
self.first_name = [self.first_name]
elif len(self.first_name) == 0:
raise ValueError(f"first_name must be a non-empty list")
self.first_name = [v if isinstance(v, str) else str(v) for v in self.first_name]
...
from examples.basic import Person
sam = Person("1172438", first_name=["Samual", "J"],last_name="Snooter")
print(sam)
Person(id='1172438', first_name=['Samual', 'J'], last_name='Snooter',
knows=[])
fred = Person("a117", first_name="John")
...
ValueError: last_name must be supplied
Using python code emitted by LinkML
32
The LinkML runtime can consume and create...
JSON
Instance
YAML
Instance
RDF
Instance
Tabular
(CSV, TSV,
Spreadsheet)
Instance
FHIR
Instance
…
Instance
LinkML Runtime
Schema.py
33
Generated python can be a gateway to anything...
JSON
Instance
YAML
Instance
RDF
Instance
Tabular
(CSV, TSV,
Spreadsheet)
Instance
FHIR
Instance
…
Instance
LinkML Runtime
Schema.py
Any Jupyter /
Big Data /
Pandas tool
that supports
34
from examples.basic import Person
from linkml.dumpers import json_dumper, rdf_dumper
sam = Person("1172438", first_name=["Samual", "J"], last_name="Snooter")
ann = Person("17a3923", first_name="Jill", last_name="Jones", knows=[sam.id])
print(json_dumper.dumps(ann))
print(yaml_dumper.dumps(ann))
print(rdf_dumper.dumps(ann, contexts="../examples/jsonld/basic.context.jsonld"))
{
"id": "17a3923",
"first_name": [
"Jill"
],
"last_name": "Jones",
"knows": [
"1172438"
],
"@type": "Person"
}
id: 17a3923
first_name:
- Jill
last_name: Jones
knows:
- '1172438'
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix sdo: <https://schema.org/> .
<https://example.org/linkml/hello-world/17a3923> a sdo:Person ;
foaf:knows <https://example.org/linkml/hello-
world/1172438> ;
sdo:familyName "Jones" ;
sdo:givenName "Jill" .
python
JSON output YAML output RDF output (by way of JSON-LD)
Objects can be exported as JSON, YAML, or RDF
35
from linkml.loaders import yaml_loader
fred = yaml_loader.load('input/fred.yaml', target_class=Person)
print(fred.first_name)
['Fred', 'William']
harvey = json_loader.load('https://raw.githubusercontent.com/hsolbrig/linkml-enhanced-
template/master/tests/input/harvey.json', target_class=Person)
print(harvey.last_name)
Mackerson
ann = rdf_loader.load('input/ann.xml', target_class=Person, fmt="xml")
print(ann.last_name)
Richardson
id: 118-28-3199
first_name:
- Fred
- William
last_name: Phillips
knows:
- '1172438'
- '1172438'
input/fred.yaml
Python code
{
"id": "118-78-0697",
"first_name": [
"Harvey"
],
"last_name": "Mackerson"
}
http://example.org/.../harvey.json input/ann.xml
Objects can be import from JSON, YAML, or RDF
36
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sdo="https://schema.org/"
>
<rdf:Description rdf:about="https://peoples.r.us">
<sdo:givenName>Ann</sdo:givenName>
<rdf:type rdf:resource="https://schema.org/Person"/>
<sdo:familyName>Richardson</sdo:familyName>
<sdo:givenName>Elizabeth</sdo:givenName>
</rdf:Description>
</rdf:RDF>
LinkML and Enums
37
Slots:
...
gender:
description: Person gender
slot_uri: SDO:gender
range: gender_enum
classes:
Thing:
description: The most generic type of item.
class_uri: SDO:Thing
slots:
- identifier
- url
- name
Person:
is_a: Thing
class_uri: SDO:Person
description: A person (alive, dead, undead, or
fictional).
slots:
- givenName
- additionalName
- gender
38
LinkML incorporates ISO/IEC 11179-3 meaning/data model
ISO/IEC 11179-
3:2013(E)
ISO/IEC 11179-3:2013(E) p. 101
A value that can appear in the data
What a particular value means
39
ISO/IEC 11179-3 divides enums into representation / meaning
enums:
gender_enum:
description: |-
Gender of something, ...
permissible_values:
0: Male Gender
1: Female Gender
8: Mixed Gender
Enumeration flavors
40
LinkML supports simple enums
Enumeration flavors
gender_enum_2:
code_set: sdo:GenderType
permissible_values:
0:
description: Male Gender
meaning: sdo:Male
1:
description: Female Gender
meaning: sdo:Female
8:
description: Mixed Gender
41
LinkML supports meaning link
gender_enum_3:
code_set: sdo:GenderType
pv_formula: CODE
42
LinkML supports meanings
drawn from conceptual domain
Revisiting the
Yosemite vision
43
LinkML and the Yosemite vision
LinkML:
- Embed RDF semantics directly in the Source and target models
- Augment the translation process with ontology and reasoners.
LinkML source
model A
LinkML source
model B
Ontology /
Reasoners
Semantic representation of
Model Content
44
LinkML is LinkML
45
The LinkML model is developed in LinkML
https://w3id.org/linkml/meta.yaml https://w3id.org/linkml/SchemaDefinition
https://w3id.org/linkml/meta.context.jsonld
46
47
The
Balancing
Act
Information Modeling World
● Explicit structures
● Implicit semantics
● Closed World Assumption
● Classes are Primary
○ Attributes owned by classes
Ontology Modeling World
● Structures are dynamic
● Semantics front and center
● Open World Assumption
● Slots (Predicates) and Classes
(Resources) are co-equals
Projects Using LinkML
48
Biolink
Model
Biolink: Goals
The charge from NCATS:
● Create a Knowledge Graph Schema
● Encompass all biology from molecules through to clinical entities
● Get 20 different sites using the same data model
○ (oh: Only a handful of which use RDF/OWL)
● Do it quickly and break new ground in Translational Science
49
Biolink
Model
Approach
● Build data model:
○ Main categories (gene, chemical, disease, …)
○ Predicates and associations
■ E.g. chemical treats disease, Gene interacts with
gene
○ .Leverage ontologies
● Collaborative development
○ Domain-specific working groups
○ Anyone can make Pull Requests
Why LinkML?
● Validate using closed-world assumption
● Ontologies and semantics, but in the background
● Property graphs and edges as first-class citizens
50
Biolink
Model
Where we are (year 2 or 5)
● All “Knowledge Providers” and “Autonomous Relay Agents”
nominally using Biolink
● Validation dashboard in progress
● Early demonstrations of powerful federated queries
51
NationalMicro
biome Data
Collaborative
Goal
● Make multi-omics microbiome data FAIR
○ Environments
○ Metagenomes
○ Metatranscriptomes
○ Metabolomics
○ Metaproteomics
● Leverage existing ontologies and
standards
● Enable discovery in microbiome science
52
NationalMicro
biome Data
Collaborative
Approach
● Formalize existing “checklist” standards
● Create modular schema
● Leverage MIxS, ENVO, PROV
Why LinkML
● Developers like JSON + JSON-Schema
● Biologists like spreadsheets
● “Semantic enums” work well
● Needed something that worked with
traditional technology (Mongo, Postgres)
● “Stealth semantics”
○ Everything has URI
○ All JSON is transparently JSON-LD
53
NationalMicro
biome Data
Collaborative
Where we are (year 2)
● Unified modular schema
● Heterogeneous data successfully
integrated
○ Environmental
○ Multiple omics types
○ Functional annotation
○ MAG binning
● Ontologies like ENVO used as ‘slot-fillers’
● Easy for developers
○ System based mainly on JSON
exchange
○ RDF can be leveraged
○ Currently Mongo + Postgres
○ Working on TerminusDB adapters
● Working with upstream standards
providers to LinkML-ify checklists
○ Spreadsheets → computable
artefacts 54
Other
projects
● Center for Cancer Data Harmonization
○ Cancer sample and patient metadata
○ Omics data
● HOT Ecosystem
○ Health Open Terminologies
○ SKOS metamodel
● Genome Features
○ Formalization of GFF3 schema
○ Sequence Ontology
● Unified Chemistry Datamodel
○ Data model and ontology for chemistry
● Gene Ontology
○ Causal Activity Models
● CSOLink
○ A high level data model of computer
systems
55
Help wanted: LinkML is still very much under construction
56
Inquire at monarchinit@gmail.com or w/ authors
Credits
57
Contributors
● Chris Mungall (Berkeley Lab)
● Deepak Unni (Berkeley Lab)
● Dazhi Jiao (Johns Hopkins University)
● Harold Solbrig (Johns Hopkins University)
● Richard Bruskiewich (Star Informatics)
● Jim Balhoff (RENCI)
● William Duncan (Berkeley Lab)
● Harshad Hegde (Berkeley Lab)
● Mark Miller (Berkeley Lab)
● Melissa Haendel (CU)
● Matthew Brush (OHSU)
● Sierra Moxon (Berkeley Lab)
● Donnie Winston (Polyneme)
58
Funding
LinkML project development was supported by funding from:
● NCATS Translator (OT2 TR003449)
● NIH Monarch (R24 OD011883)
● CD2H (U24 TR002306)
● CCDH
● FHIRCat (R56 EB028101)
● Phenomics First (RM1 HG010860)
● DOE National Microbiome Data Collaborative
59
Links and contact information
https://linkml.github.io/
https://github.com/linkml/
https://github.com/linkml/examples/ (Will be available shortly…)
solbrig@jhu.edu - Harold Solbrig
60

Más contenido relacionado

La actualidad más candente

Solid pods and the future of the spatial web
Solid pods and the future of the spatial webSolid pods and the future of the spatial web
Solid pods and the future of the spatial webKurt Cagle
 
Ks2008 Semanticweb In Action
Ks2008 Semanticweb In ActionKs2008 Semanticweb In Action
Ks2008 Semanticweb In ActionRinke Hoekstra
 
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4jExplicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4jConnected Data World
 
Web Scraping using Python | Web Screen Scraping
Web Scraping using Python | Web Screen ScrapingWeb Scraping using Python | Web Screen Scraping
Web Scraping using Python | Web Screen ScrapingCynthiaCruz55
 
Getting Started with the Alma API
Getting Started with the Alma APIGetting Started with the Alma API
Getting Started with the Alma APIKyle Banerjee
 
Resource description framework
Resource description frameworkResource description framework
Resource description frameworkStanley Wang
 
Web Scraping With Python
Web Scraping With PythonWeb Scraping With Python
Web Scraping With PythonRobert Dempsey
 
Intro to XML in libraries
Intro to XML in librariesIntro to XML in libraries
Intro to XML in librariesKyle Banerjee
 
Are Linked Datasets fit for Open-domain Question Answering? A Quality Assessment
Are Linked Datasets fit for Open-domain Question Answering? A Quality AssessmentAre Linked Datasets fit for Open-domain Question Answering? A Quality Assessment
Are Linked Datasets fit for Open-domain Question Answering? A Quality AssessmentHarsh Thakkar
 
Trying SPARQL Anything with MEI
Trying SPARQL Anything with MEITrying SPARQL Anything with MEI
Trying SPARQL Anything with MEIEnrico Daga
 
Knowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything ProjectKnowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything ProjectEnrico Daga
 
Towards an RDF Validation Language based on Regular Expression Derivatives
Towards an RDF Validation Language based on Regular Expression DerivativesTowards an RDF Validation Language based on Regular Expression Derivatives
Towards an RDF Validation Language based on Regular Expression DerivativesJose Emilio Labra Gayo
 

La actualidad más candente (20)

Solid pods and the future of the spatial web
Solid pods and the future of the spatial webSolid pods and the future of the spatial web
Solid pods and the future of the spatial web
 
Ks2008 Semanticweb In Action
Ks2008 Semanticweb In ActionKs2008 Semanticweb In Action
Ks2008 Semanticweb In Action
 
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4jExplicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j
 
Jesús Barrasa
Jesús BarrasaJesús Barrasa
Jesús Barrasa
 
What's New in RDF 1.1?
What's New in RDF 1.1?What's New in RDF 1.1?
What's New in RDF 1.1?
 
SHACL Overview
SHACL OverviewSHACL Overview
SHACL Overview
 
RDF validation tutorial
RDF validation tutorialRDF validation tutorial
RDF validation tutorial
 
Web Scraping using Python | Web Screen Scraping
Web Scraping using Python | Web Screen ScrapingWeb Scraping using Python | Web Screen Scraping
Web Scraping using Python | Web Screen Scraping
 
Getting Started with the Alma API
Getting Started with the Alma APIGetting Started with the Alma API
Getting Started with the Alma API
 
Resource description framework
Resource description frameworkResource description framework
Resource description framework
 
Data shapes-test-suite
Data shapes-test-suiteData shapes-test-suite
Data shapes-test-suite
 
SHACL by example
SHACL by exampleSHACL by example
SHACL by example
 
Data quality in Real Estate
Data quality in Real EstateData quality in Real Estate
Data quality in Real Estate
 
Web Scraping With Python
Web Scraping With PythonWeb Scraping With Python
Web Scraping With Python
 
Xml and DTD's
Xml and DTD'sXml and DTD's
Xml and DTD's
 
Intro to XML in libraries
Intro to XML in librariesIntro to XML in libraries
Intro to XML in libraries
 
Are Linked Datasets fit for Open-domain Question Answering? A Quality Assessment
Are Linked Datasets fit for Open-domain Question Answering? A Quality AssessmentAre Linked Datasets fit for Open-domain Question Answering? A Quality Assessment
Are Linked Datasets fit for Open-domain Question Answering? A Quality Assessment
 
Trying SPARQL Anything with MEI
Trying SPARQL Anything with MEITrying SPARQL Anything with MEI
Trying SPARQL Anything with MEI
 
Knowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything ProjectKnowledge graph construction with a façade - The SPARQL Anything Project
Knowledge graph construction with a façade - The SPARQL Anything Project
 
Towards an RDF Validation Language based on Regular Expression Derivatives
Towards an RDF Validation Language based on Regular Expression DerivativesTowards an RDF Validation Language based on Regular Expression Derivatives
Towards an RDF Validation Language based on Regular Expression Derivatives
 

Similar a LinkML presentation to Yosemite Group

LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOChris Mungall
 
Deploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application ServerDeploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application Serverwebhostingguy
 
Triplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataTriplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataRoberto García
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic WebIvan Herman
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015Cason Snow
 
RDFa Semantic Web
RDFa Semantic WebRDFa Semantic Web
RDFa Semantic WebRob Paok
 
Ontology mapping for the semantic web
Ontology mapping for the semantic webOntology mapping for the semantic web
Ontology mapping for the semantic webWorawith Sangkatip
 
2011 07 14_fractalperspective
2011 07 14_fractalperspective2011 07 14_fractalperspective
2011 07 14_fractalperspectiveCurran Kelleher
 
Future of Web 2.0 & The Semantic Web
Future of Web 2.0 & The Semantic WebFuture of Web 2.0 & The Semantic Web
Future of Web 2.0 & The Semantic Webis20090
 
Building a semantic website
Building a semantic websiteBuilding a semantic website
Building a semantic websiteCJ Jenkins
 
Web 3 Mark Greaves
Web 3 Mark GreavesWeb 3 Mark Greaves
Web 3 Mark GreavesMediabistro
 
Data Portability with SIOC and FOAF
Data Portability with SIOC and FOAFData Portability with SIOC and FOAF
Data Portability with SIOC and FOAFUldis Bojars
 
RDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataRDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataGiorgos Santipantakis
 
X api chinese cop monthly meeting feb.2016
X api chinese cop monthly meeting   feb.2016X api chinese cop monthly meeting   feb.2016
X api chinese cop monthly meeting feb.2016Jessie Chuang
 
Linked Open Data in the World of Patents
Linked Open Data in the World of Patents Linked Open Data in the World of Patents
Linked Open Data in the World of Patents Dr. Haxel Consult
 
The nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologiesThe nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologiesTony Hammond
 
A LASSO for Linked Data
A LASSO for Linked DataA LASSO for Linked Data
A LASSO for Linked Datathosch
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeDan Brickley
 

Similar a LinkML presentation to Yosemite Group (20)

LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
 
Deploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application ServerDeploying PHP applications using Virtuoso as Application Server
Deploying PHP applications using Virtuoso as Application Server
 
Triplificating and linking XBRL financial data
Triplificating and linking XBRL financial dataTriplificating and linking XBRL financial data
Triplificating and linking XBRL financial data
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
Linked data HHS 2015
Linked data HHS 2015Linked data HHS 2015
Linked data HHS 2015
 
Linked Data to Improve the OER Experience
Linked Data to Improve the OER ExperienceLinked Data to Improve the OER Experience
Linked Data to Improve the OER Experience
 
RDFa Semantic Web
RDFa Semantic WebRDFa Semantic Web
RDFa Semantic Web
 
Ontology mapping for the semantic web
Ontology mapping for the semantic webOntology mapping for the semantic web
Ontology mapping for the semantic web
 
Semantic Web talk TEMPLATE
Semantic Web talk TEMPLATESemantic Web talk TEMPLATE
Semantic Web talk TEMPLATE
 
2011 07 14_fractalperspective
2011 07 14_fractalperspective2011 07 14_fractalperspective
2011 07 14_fractalperspective
 
Future of Web 2.0 & The Semantic Web
Future of Web 2.0 & The Semantic WebFuture of Web 2.0 & The Semantic Web
Future of Web 2.0 & The Semantic Web
 
Building a semantic website
Building a semantic websiteBuilding a semantic website
Building a semantic website
 
Web 3 Mark Greaves
Web 3 Mark GreavesWeb 3 Mark Greaves
Web 3 Mark Greaves
 
Data Portability with SIOC and FOAF
Data Portability with SIOC and FOAFData Portability with SIOC and FOAF
Data Portability with SIOC and FOAF
 
RDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival dataRDF-Gen: Generating RDF from streaming and archival data
RDF-Gen: Generating RDF from streaming and archival data
 
X api chinese cop monthly meeting feb.2016
X api chinese cop monthly meeting   feb.2016X api chinese cop monthly meeting   feb.2016
X api chinese cop monthly meeting feb.2016
 
Linked Open Data in the World of Patents
Linked Open Data in the World of Patents Linked Open Data in the World of Patents
Linked Open Data in the World of Patents
 
The nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologiesThe nature.com ontologies portal: nature.com/ontologies
The nature.com ontologies portal: nature.com/ontologies
 
A LASSO for Linked Data
A LASSO for Linked DataA LASSO for Linked Data
A LASSO for Linked Data
 
SemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in PracticeSemWeb Fundamentals - Info Linking & Layering in Practice
SemWeb Fundamentals - Info Linking & Layering in Practice
 

Más de Chris Mungall

MADICES Mungall 2022.pptx
MADICES Mungall 2022.pptxMADICES Mungall 2022.pptx
MADICES Mungall 2022.pptxChris 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 sciencesChris Mungall
 
Ontology Access Kit_ Workshop Intro Slides.pptx
Ontology Access Kit_ Workshop Intro Slides.pptxOntology Access Kit_ Workshop Intro Slides.pptx
Ontology Access Kit_ Workshop Intro Slides.pptxChris 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 lifeChris 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 LifeChris Mungall
 
Representation of kidney structures in Uberon
Representation of kidney structures in UberonRepresentation of kidney structures in Uberon
Representation of kidney structures in UberonChris 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 2019Chris 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 contributionsChris 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 ontologiesChris Mungall
 
Causal reasoning using the Relation Ontology
Causal reasoning using the Relation OntologyCausal reasoning using the Relation Ontology
Causal reasoning using the Relation OntologyChris Mungall
 
US2TS presentation on Gene Ontology
US2TS presentation on Gene OntologyUS2TS presentation on Gene Ontology
US2TS presentation on Gene OntologyChris Mungall
 
Introduction to the BioLink datamodel
Introduction to the BioLink datamodelIntroduction to the BioLink datamodel
Introduction to the BioLink datamodelChris Mungall
 
Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015Computing on Phenotypes AMP 2015
Computing on Phenotypes AMP 2015Chris Mungall
 
Mungall keynote-biocurator-2017
Mungall keynote-biocurator-2017Mungall keynote-biocurator-2017
Mungall keynote-biocurator-2017Chris Mungall
 

Más de 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
 
Ontology Access Kit_ Workshop Intro Slides.pptx
Ontology Access Kit_ Workshop Intro Slides.pptxOntology Access Kit_ Workshop Intro Slides.pptx
Ontology Access Kit_ Workshop Intro Slides.pptx
 
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
 
Introduction to the BioLink datamodel
Introduction to the BioLink datamodelIntroduction to the BioLink datamodel
Introduction to the BioLink datamodel
 
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
 

Último

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

LinkML presentation to Yosemite Group

  • 1. LinkML Linked (Open) Data Modeling Language Yosemite Presentation April 2021 Harold Solbrig Chris Mungall These slides: https://tinyurl.com/linkml-2021-april 1
  • 5. “For the semantic web to function, computers must have access to structured collections of information and sets of inference rules that they can use to conduct automated reasoning.” “Traditional knowledge-representation systems typically have been centralized, requiring everyone to share exactly the same definition of common concepts such as "parent" or "vehicle." But central control is stifling, and increasing the size and scope of such a system rapidly becomes unmanageable.” 5
  • 6. Vision of the Semantic Web: information → meaning “The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation.” RDF for machines Decentralized information networks Ontologies Automatic Agents Digital Signatures Identify with resolvable http URIs Prose for humans Centralized data repositories Free text Manual extraction / data wrangling Unsigned Identify with strings 6
  • 7. The Semantic Web 20 years Later Progress - Web is ubiquitous - URIs are used - Agents abound - Digital signatures and security have advanced - Semantics are improving schema.org (Not so much) progress - Decentralization -- Web is decentralized, but aggregators dominate (Solid project) - Semantics -- ontologies abound, but useful ontologies… not so much so. - RDF -- still an afterthought. Informal models (JSON) or formal schemas, but semantics are still largely textual 7
  • 8. Biolink Model What lead to LinkML The charge from NCATS: ● Create a Knowledge Graph Schema ● Encompass all biology from molecules through to clinical entities ● Get 20 different sites using the same data model ○ (oh: Only a handful of which use RDF/OWL) ● Do it quickly and break new ground in Translational Science 8
  • 9. NationalMicro biome Data Collaborative Goal ● Make multi-omics microbiome data FAIR ○ Environments ○ Metagenomes ○ Metatranscriptomes ○ Metabolomics ○ Metaproteomics ● Leverage existing ontologies and standards ● Enable discovery in microbiome science 9
  • 11. LinkML Philosophy ● Simplicity: YAML source files managed in GitHub ● Multimodal ○ JSON, RDF, Property Graphs ○ Open and Closed World use cases ● Stealth Semantics ○ Let them have JSON and OO Python Data Classes ○ Shh, secretly it’s JSON-LD ● Be a parasite ○ Compiles down to other frameworks; we can then leverage their toolchains ■ JSON-Schema: validation of JSON ■ ShEx: validation of RDF graphs ■ GraphQL: APIs ■ OWL: reasoning, browsers/registries ■ JSON-LD Contexts 11
  • 13. BiolinkML: The LinkML predecessor https://github.com/biolink/biolinkml/ 13
  • 14. LinkML “Goals” Distributed, federated models ● Easy to create and maintain ● Available in multiple forms ● URL Addressable ● Integrated with Github idiom Automatic tool generation ● Loaders / dumpers ● Format transformations Baked in semantics ● Everything gets a URL ● Baked in RDF and Semantic links ○ Invisible except when necessary ● Semantic driven model transformation via RDF ○ JSON-LD and ShEx under the covers ○ JSON / YAML / CSV on the surface 14
  • 16. 3 1 2 The Yosemite Vision of Data Translation 16 Source Target Translate based on crowdsourced rules Adapted from Graphic by David Booth
  • 17. 3 1 2 ...was not without its problems Adapted from Graphic by David Booth 17 Source Target Translate based on crowdsourced rules - Source doesn’t include formal (RDF) semantics. 3rd parties must create, validate and maintain these semantics - RDF doesn’t lend itself to crowdsourcing - Structural and semantic differences mean that both the source and target need to support not just semantics but shared semantics.
  • 18. LinkML target model LinkML source model LinkML: Embed RDF semantics directly in the Source and target models; Augment the translation process with ontology and reasoners. 18 Ontology Reasoners
  • 20. id: https://example.org/linkml/hello-world title: Really basic LinkML model name: hello-world license: https://creativecommons.org/publicdomain/zero/1.0/ version: 0.0.1 prefixes: linkml: https://w3id.org/linkml/ sdo: https://schema.org/ ex: https://example.org/linkml/hello-world/ default_prefix: ex default_curi_maps: - semweb_context imports: - linkml:types classes: Person: description: Minimal information about a person class_uri: sdo:Person attributes: id: identifier: true slot_uri: sdo:taxID first_name: required: true slot_uri: sdo:givenName multivalued: true last_name: required: true slot_uri: sdo:familyName knows: range: Person multivalued: true slot_uri: foaf:knows Metadata Dependencies Namespaces Actual Model A sample LinkML Schema 20
  • 21. id: https://example.org/linkml/hello-world title: Really basic LinkML model name: hello-world license: https://creativecommons.org/publicdomain/zero/1.0/ version: 0.0.1 prefixes: linkml: https://w3id.org/linkml/ sdo: https://schema.org/ ex: https://example.org/linkml/hello-world/ default_prefix: ex default_curi_maps: - semweb_context imports: - linkml:types classes: Person: description: Minimal information about a person class_uri: sdo:Person attributes: id: identifier: true slot_uri: sdo:taxID first_name: required: true slot_uri: sdo:givenName multivalued: true last_name: required: true slot_uri: sdo:familyName knows: range: Person multivalued: true slot_uri: foaf:knows Metadata Dependencies Namespaces Actual Model LinkML RDF is hidden in plain sight 21
  • 22. LinkML parser allows different frameworks to be used in different contexts MyModel Documentation OWL JSON Schema ShEx Schema Schema.py GraphQL Schema LinkML Schema JSONLD Context . . . LinkML parser 22
  • 23. LinkML automates the documentation process Schema Documentation OWL JSON Schema ShEx Schema Schema.py GraphQL Schema LinkML Schema JSONLD Context . . . LinkML parser 23
  • 24. Sample model documentation output https://hsolbrig.github.io/sample_model/docs 24
  • 25. LinkML can generate a variety of conforming schemas Schema OWL JSON Schema ShEx Schema Schema.py GraphQL Schema Schema Source JSONLD Context . . . LinkML parser 25
  • 26. BASE <https://example.org/linkml/hello-world/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX sdo: <https://schema.org/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> <String> xsd:string <Person> CLOSED { ( $<Person_tes> ( sdo:givenName @<String> + ; sdo:familyName @<String> ; foaf:knows @<Person> * ) ; rdf:type [ sdo:Person ] ) } "$id": "https://example.org/linkml/person", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "Person": { "additionalProperties": false, "description": "Minimal information about a person", "properties": { "first_name": { "items": { "type": "string" }, "type": "array" }, "id": { "type": "string" }, ... Shape Expressions (ShEx) Schema JSON Schema type Person { id: String! firstName: [String]! lastName: String! knows: [Person] } Graphql Schema Sample LinkML generated schemas 26
  • 27. LinkML can also emit OWL 27
  • 28. LinkML can also be used to represent ontology 28 OWL derived from Biolink Model
  • 29. LinkML models can be translated to JSON-LD context Schema OWL JSON Schema ShEx Schema Schema.py GraphQL Schema Schema Source JSONLD Context . . . LinkML parser 29
  • 30. { "@context": { "ex": "https://example.org/linkml/hello-world/", "foaf": "http://xmlns.com/foaf/0.1/", "linkml": "https://w3id.org/linkml/", "sdo": "https://schema.org/", "@vocab": "https://example.org/linkml/hello-world/", "first_name": { "@id": "sdo:givenName" }, "id": "@id", "knows": { "@type": "@id", "@id": "foaf:knows" }, "last_name": { "@id": "sdo:familyName" }, "Person": { "@id": "sdo:Person" } } } A sample JSON-LD context in use https://tinyurl.com/s6keujhm 30
  • 31. LinkML can emit python Schema Documentation OWL JSON Schema ShEx Schema Schema.py GraphQL Schema Schema Source JSONLD Context . . . LinkML parser 31
  • 32. # Types class String(str): type_class_uri = XSD.string type_class_curie = "xsd:string" type_name = "string" type_model_uri = EX.String @dataclass class Person(YAMLRoot): """ Minimal information about a person """ id: Union[str, PersonId] = None first_name: Union[str, List[str]] = None last_name: str = None knows: Optional[Union[Union[str, PersonId], List[Union[str, PersonId]]]] = empty_list() def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.id is None: raise ValueError("id must be supplied") if not isinstance(self.id, PersonId): self.id = PersonId(self.id) if self.first_name is None: raise ValueError("first_name must be supplied") elif not isinstance(self.first_name, list): self.first_name = [self.first_name] elif len(self.first_name) == 0: raise ValueError(f"first_name must be a non-empty list") self.first_name = [v if isinstance(v, str) else str(v) for v in self.first_name] ... from examples.basic import Person sam = Person("1172438", first_name=["Samual", "J"],last_name="Snooter") print(sam) Person(id='1172438', first_name=['Samual', 'J'], last_name='Snooter', knows=[]) fred = Person("a117", first_name="John") ... ValueError: last_name must be supplied Using python code emitted by LinkML 32
  • 33. The LinkML runtime can consume and create... JSON Instance YAML Instance RDF Instance Tabular (CSV, TSV, Spreadsheet) Instance FHIR Instance … Instance LinkML Runtime Schema.py 33
  • 34. Generated python can be a gateway to anything... JSON Instance YAML Instance RDF Instance Tabular (CSV, TSV, Spreadsheet) Instance FHIR Instance … Instance LinkML Runtime Schema.py Any Jupyter / Big Data / Pandas tool that supports 34
  • 35. from examples.basic import Person from linkml.dumpers import json_dumper, rdf_dumper sam = Person("1172438", first_name=["Samual", "J"], last_name="Snooter") ann = Person("17a3923", first_name="Jill", last_name="Jones", knows=[sam.id]) print(json_dumper.dumps(ann)) print(yaml_dumper.dumps(ann)) print(rdf_dumper.dumps(ann, contexts="../examples/jsonld/basic.context.jsonld")) { "id": "17a3923", "first_name": [ "Jill" ], "last_name": "Jones", "knows": [ "1172438" ], "@type": "Person" } id: 17a3923 first_name: - Jill last_name: Jones knows: - '1172438' @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix sdo: <https://schema.org/> . <https://example.org/linkml/hello-world/17a3923> a sdo:Person ; foaf:knows <https://example.org/linkml/hello- world/1172438> ; sdo:familyName "Jones" ; sdo:givenName "Jill" . python JSON output YAML output RDF output (by way of JSON-LD) Objects can be exported as JSON, YAML, or RDF 35
  • 36. from linkml.loaders import yaml_loader fred = yaml_loader.load('input/fred.yaml', target_class=Person) print(fred.first_name) ['Fred', 'William'] harvey = json_loader.load('https://raw.githubusercontent.com/hsolbrig/linkml-enhanced- template/master/tests/input/harvey.json', target_class=Person) print(harvey.last_name) Mackerson ann = rdf_loader.load('input/ann.xml', target_class=Person, fmt="xml") print(ann.last_name) Richardson id: 118-28-3199 first_name: - Fred - William last_name: Phillips knows: - '1172438' - '1172438' input/fred.yaml Python code { "id": "118-78-0697", "first_name": [ "Harvey" ], "last_name": "Mackerson" } http://example.org/.../harvey.json input/ann.xml Objects can be import from JSON, YAML, or RDF 36 <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sdo="https://schema.org/" > <rdf:Description rdf:about="https://peoples.r.us"> <sdo:givenName>Ann</sdo:givenName> <rdf:type rdf:resource="https://schema.org/Person"/> <sdo:familyName>Richardson</sdo:familyName> <sdo:givenName>Elizabeth</sdo:givenName> </rdf:Description> </rdf:RDF>
  • 38. Slots: ... gender: description: Person gender slot_uri: SDO:gender range: gender_enum classes: Thing: description: The most generic type of item. class_uri: SDO:Thing slots: - identifier - url - name Person: is_a: Thing class_uri: SDO:Person description: A person (alive, dead, undead, or fictional). slots: - givenName - additionalName - gender 38 LinkML incorporates ISO/IEC 11179-3 meaning/data model ISO/IEC 11179- 3:2013(E)
  • 39. ISO/IEC 11179-3:2013(E) p. 101 A value that can appear in the data What a particular value means 39 ISO/IEC 11179-3 divides enums into representation / meaning
  • 40. enums: gender_enum: description: |- Gender of something, ... permissible_values: 0: Male Gender 1: Female Gender 8: Mixed Gender Enumeration flavors 40 LinkML supports simple enums
  • 41. Enumeration flavors gender_enum_2: code_set: sdo:GenderType permissible_values: 0: description: Male Gender meaning: sdo:Male 1: description: Female Gender meaning: sdo:Female 8: description: Mixed Gender 41 LinkML supports meaning link
  • 42. gender_enum_3: code_set: sdo:GenderType pv_formula: CODE 42 LinkML supports meanings drawn from conceptual domain
  • 44. LinkML and the Yosemite vision LinkML: - Embed RDF semantics directly in the Source and target models - Augment the translation process with ontology and reasoners. LinkML source model A LinkML source model B Ontology / Reasoners Semantic representation of Model Content 44
  • 46. The LinkML model is developed in LinkML https://w3id.org/linkml/meta.yaml https://w3id.org/linkml/SchemaDefinition https://w3id.org/linkml/meta.context.jsonld 46
  • 47. 47 The Balancing Act Information Modeling World ● Explicit structures ● Implicit semantics ● Closed World Assumption ● Classes are Primary ○ Attributes owned by classes Ontology Modeling World ● Structures are dynamic ● Semantics front and center ● Open World Assumption ● Slots (Predicates) and Classes (Resources) are co-equals
  • 49. Biolink Model Biolink: Goals The charge from NCATS: ● Create a Knowledge Graph Schema ● Encompass all biology from molecules through to clinical entities ● Get 20 different sites using the same data model ○ (oh: Only a handful of which use RDF/OWL) ● Do it quickly and break new ground in Translational Science 49
  • 50. Biolink Model Approach ● Build data model: ○ Main categories (gene, chemical, disease, …) ○ Predicates and associations ■ E.g. chemical treats disease, Gene interacts with gene ○ .Leverage ontologies ● Collaborative development ○ Domain-specific working groups ○ Anyone can make Pull Requests Why LinkML? ● Validate using closed-world assumption ● Ontologies and semantics, but in the background ● Property graphs and edges as first-class citizens 50
  • 51. Biolink Model Where we are (year 2 or 5) ● All “Knowledge Providers” and “Autonomous Relay Agents” nominally using Biolink ● Validation dashboard in progress ● Early demonstrations of powerful federated queries 51
  • 52. NationalMicro biome Data Collaborative Goal ● Make multi-omics microbiome data FAIR ○ Environments ○ Metagenomes ○ Metatranscriptomes ○ Metabolomics ○ Metaproteomics ● Leverage existing ontologies and standards ● Enable discovery in microbiome science 52
  • 53. NationalMicro biome Data Collaborative Approach ● Formalize existing “checklist” standards ● Create modular schema ● Leverage MIxS, ENVO, PROV Why LinkML ● Developers like JSON + JSON-Schema ● Biologists like spreadsheets ● “Semantic enums” work well ● Needed something that worked with traditional technology (Mongo, Postgres) ● “Stealth semantics” ○ Everything has URI ○ All JSON is transparently JSON-LD 53
  • 54. NationalMicro biome Data Collaborative Where we are (year 2) ● Unified modular schema ● Heterogeneous data successfully integrated ○ Environmental ○ Multiple omics types ○ Functional annotation ○ MAG binning ● Ontologies like ENVO used as ‘slot-fillers’ ● Easy for developers ○ System based mainly on JSON exchange ○ RDF can be leveraged ○ Currently Mongo + Postgres ○ Working on TerminusDB adapters ● Working with upstream standards providers to LinkML-ify checklists ○ Spreadsheets → computable artefacts 54
  • 55. Other projects ● Center for Cancer Data Harmonization ○ Cancer sample and patient metadata ○ Omics data ● HOT Ecosystem ○ Health Open Terminologies ○ SKOS metamodel ● Genome Features ○ Formalization of GFF3 schema ○ Sequence Ontology ● Unified Chemistry Datamodel ○ Data model and ontology for chemistry ● Gene Ontology ○ Causal Activity Models ● CSOLink ○ A high level data model of computer systems 55
  • 56. Help wanted: LinkML is still very much under construction 56 Inquire at monarchinit@gmail.com or w/ authors
  • 58. Contributors ● Chris Mungall (Berkeley Lab) ● Deepak Unni (Berkeley Lab) ● Dazhi Jiao (Johns Hopkins University) ● Harold Solbrig (Johns Hopkins University) ● Richard Bruskiewich (Star Informatics) ● Jim Balhoff (RENCI) ● William Duncan (Berkeley Lab) ● Harshad Hegde (Berkeley Lab) ● Mark Miller (Berkeley Lab) ● Melissa Haendel (CU) ● Matthew Brush (OHSU) ● Sierra Moxon (Berkeley Lab) ● Donnie Winston (Polyneme) 58
  • 59. Funding LinkML project development was supported by funding from: ● NCATS Translator (OT2 TR003449) ● NIH Monarch (R24 OD011883) ● CD2H (U24 TR002306) ● CCDH ● FHIRCat (R56 EB028101) ● Phenomics First (RM1 HG010860) ● DOE National Microbiome Data Collaborative 59
  • 60. Links and contact information https://linkml.github.io/ https://github.com/linkml/ https://github.com/linkml/examples/ (Will be available shortly…) solbrig@jhu.edu - Harold Solbrig 60