SlideShare a Scribd company logo
1 of 121
Data FAIRport Skunkworks
First Prototype Demo of Legacy Data Repository
Discovery and Interoperability
(Mark D Wilkinson, Presentation to Elsevier, Jul, 2015)
This presentation is licensed CC-BY
Mark Wilkinson (markw@illuminae.com)
https://goo.gl/YEdwwB
@markmoby
EU Lead
Mark Wilkinson
Isaac Peral Distinguished Researcher, CBGP-UPM, Madrid
USA Lead
Michel Dumontier
Associate Professor, Biomedical Informatics, Stanford, USA
FAIRport Project Lead
Barend Mons
Professor, Leiden University Medical Centre, Netherlands
Data FAIRport
Skunkworks
Common repository access via meta-meta-
descriptors and homogenous accessors
What is a FAIRport?
● Findable - (meta)data should be uniquely and persistently
identifiable
● Accessible - identifiers should provide a mechanism for (meta)data
access, including authentication, access protocol, license, etc.
● Interoperable - (meta)data should be machine-accessible, using a
machine-parseable syntax and, where possible, shared common
vocabularies.
● Reusable - there should be sufficient machine-readable metadata
that it is possible to “integrate like-with-like”, and that component data
objects can be precisely and comprehensively cited post-integration.
The Problem
End-user view of “The Problem”
Tissue rejection experimental context. Today, I’m looking
for microarray data of human liver cells on a time-course
following liver transplant.
What repositories could contain such data?
● GEO? EUDat? FigShare? Dryad? Atlas?
● What fields in those repositories would I need to
search, using what vocabularies, to find the
microarray studies that are relevant?
Dissecting the problem
There are a lot of repositories!
General Purpose: Dataverse, Dryad, EUDat, Figshare, etc.
Special Purpose: PDB, UniProt, NCBI, GEO, Atlas, EnsEMBL
Dissecting the problem
Lack of harmonized metadata structures, or even rich
descriptions of the contents of these repositories, hinders
us from (for example):
● knowing where we can look for certain types of data
● knowing if two repositories contain records about the same thing
● Cross-referencing or “joining” across repositories to integrate
disparate data about the same thing
● Knowing which repository I could/should deposit my data to (and how)
“Skunkworks” Challenge
If we wanted to enable this kind of FAIR discovery and
integration over myriad repositories, what infrastructure
(existing/new) would we need?
If we wanted to enable this kind of FAIR discovery and
integration over myriad repositories, what infrastructure
(existing/new) would we need?
Discussions with Tim Clark revealed that the core
objectives of Skunkworks were very similar to those of
Force 11 Data Citation Implementation
Working Group Team 4 - “Common repository interfaces”
...so we joined forces :-)
“Skunkworks” Challenge
The Solution?
Shared Metadata Descriptors?
They already exist! (e.g. DCAT)
Are not (yet) widely implemented
But are not sufficiently rich...
...only describe “core” metadata
We need to query richer metadata like experimental
context and domain-specific data elements
So... extend DCAT?
So... extend DCAT?
...extend it where?...
too many specialist domains & data-types
resistance to harmonization
resistance to implementation
(time, money, expertise, ‘just don’t care’)
attempting to impose standards
is a Mug’s game!
Common provider-implemented API?
Common provider-implemented API?
a la TDWG/TAPIR and caBIO...
too many specialist domains & data-types
resistance to harmonization
resistance to implementation
(time, money, expertise, ‘just don’t care’)
attempting to impose standards
is a Mug’s game!
Where else could the solution be?
What exactly *is* our problem?
What exactly *is* our problem?
Data Record (e.g. XML, RDF)
What exactly *is* our problem?
Data Record (e.g. XML, RDF)
Data Schema (e.g. XMLS, RDFS)
Defines
What exactly *is* our problem?
Data Record (e.g. XML, RDF)
Data Schema (e.g. XMLS, RDFS)
Metadata Record (e.g. DCAT-compliant RDF)
Defines
Describes
What exactly *is* our problem?
Data Record (e.g. XML, RDF)
Data Schema (e.g. XMLS, RDFS)
Metadata Record (e.g. DCAT-compliant RDF)
(IF the repository uses DCAT)
DCAT RDFS Schema
(IF the repository uses DCAT…)
Defines
Describes
Defines
What exactly *is* our problem?
Data Record (e.g. XML, RDF)
Data Schema (e.g. XMLS, RDFS)
Metadata Record (e.g. DCAT-compliant RDF)
(IF the repository uses DCAT)
DCAT RDFS Schema
(IF the repository uses DCAT…)
Defines
Describes
Defines
If everyone used DCAT, we could at least query the
core metadata of all repositories…
...but they don’t...
...and core isn’t rich enough anyway...
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
REALITY
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
Repositories don’t all use DCAT Schema
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
Those that use DCAT Schema, use only parts of it
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
Those that don’t use DCAT
use a myriad of alternatives (some very loosely defined)
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
And don’t necessarily use
all elements of those alternatives either
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
So we need to find a way to do RICH queries
over all of these?
What exactly *is* our problem?
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
We need a way to describe the descriptors...
Desiderata of meta-meta descriptors
● Must describe legacy data (i.e. not just DCAT or other “modern” data)
● Must describe a multitude of data formats (XML, RDF, Key/Value, etc.)
● Must be capable of describing any kind of value constraint, e.g. plain text,
numerical, arbitrary CV, rdf:range, or equivalent OWL construct
● Must be modular, identifiable, shareable, and reusable (to stem the
proliferation of new formats)
● Must be hierarchical to allow composite re-use of shared descriptors
● Must use standard technologies, and re-use existing vocabularies if poss.
● Must be extremely lightweight and “trivial” to create
● Must NOT require the participation of the repository host (no buy-in required)
The Solution?
(or at least, our best attempt to date!)
Exemplar use-cases:
● A piece of software that can generate a “sensible”
data submission form for any repository
(at the Force 2015 meeting a few months ago I gave a presentation of a working
example of this… so I won’t repeat that today…)
● A piece of software that can generate a “sensible”
query form/interface for any repository
(demonstration of this today!)
Skunkworks Task #1 - [F]indable
Invent harmonized cross-repository meta-
descriptors
“FAIR Profiles”
FAIR Profiles provide a common way to describe
a repository’s metadata
(and data, for that matter!)
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
What FAIR Profiles do
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
FAIR Profile of
DCAT Schema
FAIR Profile of
UniProt Metadata
Schema
FAIR Profile of
DragDB Metadata
Schema
What FAIR Profiles do
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
FAIR Profile
DCAT Schema
FAIR Profile
UniProt Metadata
Schema
FAIR Profile
DragDB Metadata
Schema
Though they are potentially describing very different things
(from Web FORM fields to OWL Ontologies!)
all FAIR Profiles are written using the same vocabulary and structure, defined by...
XML
Data Record
XMLS
Data Schema
DCAT RDF
Metadata Record
RDF
Data Record
RDFS
Data Schema
UniProt RDF
Metadata Record
ACEDB
Data Record
ACEDB
Data Schema
DragonDB Form
Metadata Record
DCAT
RDFS Schema
UniProt RDFS
MetadataSchema
DragonDB Form
Metadata Schema
FAIR Profile
DCAT Schema
FAIR Profile
UniProt Metadata
Schema
FAIR Profile
DragDB Metadata
Schema
The FAIR Profile
Schema
Repo. Data Record (e.g. XML, RDF)
Repo. Data Schema (e.g. XMLS, RDFS)
Repository Metadata Record
Repository Metadata Schema
Defines
Describes
Defines
Defines
~~Describes**
Repository’s FAIR Profile
FAIR Profile Schema
Repo. Data Record (e.g. XML, RDF)
Repo. Data Schema (e.g. XMLS, RDFS)
Repository Metadata Record
Repository Metadata Schema
Defines
Defines
~~Describes**
Repository’s FAIR Profile
FAIR Profile Schema
FAIR Profile Schema
A very small OWL Vocabulary for writing meta-meta-
descriptors
FAIR Profile
Metadata
FAIR Class
dc:
provenance
hasProperty
owl:Class
(URI or de
novo
definition)
rdf:Property
owl:ObjectProperty or
owl:DatatypeProperty
describes property
minCount
xsd:anyURI
xsd:integer
xsd:integer
maxCount
allowedValues
FAIR
Property
describes class
rdf:langString
skos:preferredLabel skos:preferredLabel
rdf:langString
http://datafairport.org/schema/FAIR-schema.owl
FAIR Profile Schema
A very small OWL Vocabulary for writing meta-meta-
descriptors
http://datafairport.org/schema/FAIR-schema.owl
FAIR Profile
Metadata
FAIR Class
dc:
provenance
hasProperty
owl:Class
(URI or de
novo
definition)
rdf:Property
owl:ObjectProperty or
owl:DatatypeProperty
describes property
minCount
xsd:anyURI
xsd:integer
xsd:integer
maxCount
allowedValues
FAIR
Property
describes class
rdf:langString
skos:preferredLabel skos:preferredLabel
rdf:langString
xsd:anyURI
allowedValues
URI must resolve to a
SKOS Concept Scheme
Describes the constraints on the possible
values for a predicate in the target-
Repository’s metadata Schema
xsd:anyURI
allowedValues
URI must resolve to a
SKOS Concept Scheme
Describes the constraints on the possible
values for a predicate in the target-
Repository’s metadata Schema
NOTE: we cannot use rdfs:range because
we are meta-modelling a schema! The
predicate is a CLASS at the meta-model
level, so use of rdfs:range is not appropriate.
xsd:anyURI
allowedValues
A FAIR Profile
(an RDF document that follows the FAIR Profile Schema)
This
Metadata Record
Metadata Schema
Fair Profile
Fair Profile Schema
A FAIR Profile
(an RDF document that follows the FAIR Profile Schema)
This
Metadata Record
Metadata Schema
Fair Profile
Fair Profile Schema
(as an aside, This is a document that, we believe, is
an implementation of the ISO11179 standard for
metadata descriptors; however we have not formally
made the mapping between our concepts and theirs.
This will happen soon, and this mapping alone is
sufficient to become ISO11179-compliant. As such, the
Fair Profile Schema is a schema for creating ISO11179-
compliant descriptors…)
What a FAIR Profile is:
A meta-description of the (meta)data
in a repository
What a FAIR Profile is:
A meta-description of the (meta)data
in a repository
What a FAIR Profile is NOT:
THE meta-description of the (meta)data
in a repository
What a FAIR Profile is:
A meta-description of the (meta)data
in a repository
if you were to view it
from a particular “perspective”
(also known as a “lens*” over the data)
* Scientific Lenses to Support Multiple Views over Linked Chemistry
Data; DOI:10.1007/978-3-319-11964-9_7
What a FAIR Profile is:
A meta-description of the (meta)data
in a repository
if you were to view it
from a particular “perspective”
(also known as a “lens*” over the data)
this is where the FAIRport approach becomes
distinctly powerful!
What a FAIR Profile is:
A meta-description of the (meta)data
in a repository
if you were to view it
from a particular “perspective”
(also known as a “lens*” over the data)
but first, look at the other
FAIRport components
Skunkworks Task #2 - [A]cessible
Are there already access layer definitions?
remind myself to say that many of
these components are standalone
you don’t have to implement
everything, all at once.
A set of behaviors for providing a unified (albeit simplistic!)
access layer for “records” contained in any Web resource
Skunkworks Task #2 - [A]cessible
Are there already access layer definitions?
LDP sits at a URL waiting
GET
Client calls HTTP GET
on the URL
(that’s all!)
??
LDP communicates
with the repository
(how? entirely up to you!)
Repository returns data
“about available records”
(how? entirely up to you!)
??
LDP returns you an
RDF representation of the
list of records’ URLs
<RDF>
URL1
URL2
URL3
URL4
URL5
URL6
…
…
...
</RDF>
GET URL6
The URLs (should) point
back to the LDP server
??
LDP communicates with the
repository about that record
??
LDP returns you
DCAT Distributions for all
available formats of that record
that the repo provides
<RDF>
<dcat:Dist.>
<format xml>
URL6a
<dcat:Dist.>
<format html>
URL6b
</RDF>
You directly call the
repository using the URL of
your choice
GET URL6a
Repository returns you the
data you requested
Content-type: application/xml
<data>
<data>
Yummy Data Here!
</data>
</data>
….
(Note: most repositories already do this part!
So we’re half-way there :-) )
The first time I wrote one of these from scratch,
it was about 170 lines of code,
and took less than 4 hours
(including reading the W3C documentation!)
The first time I wrote one of these from scratch,
it was about 170 lines of code,
and took less than 4 hours
(including reading the W3C documentation!)
These may exist completely independently of any other FAIRport component
as a way of fulfilling the “A” (Accessible) aspect of the FAIR Data Principles
https://www.force11.org/group/fairgroup/fairprinciples
The first time I wrote one of these from scratch,
it was about 170 lines of code,
and took less than 4 hours
(including reading the W3C documentation!)
However, when one of these is associated with a FAIR Profile we call it a
“FAIR Accessor”
The first time I wrote one of these from scratch,
it was about 170 lines of code,
and took less than 4 hours
(including reading the W3C documentation!)
**** As of July 8, 2015, there are now support libraries (in Perl)
for this part of the implementation: https://goo.gl/NB13Fz (the
location of this code will change soon, sorry!)
Live Demo….
http://biordf.org/cgi-bin/RD_Connect/EHDN_Accessor
DISCLAIMER: This demonstration was written during an RD Connect
workshop, and the demonstration references various aspects of the RD
Connect project (including having ‘RD_Connect’ in the URL). HOWEVER, I am
not affiliated with RD Connect, I do not speak for RD Connect in any way,
and RD Connect does not endorse any of these ideas, products,
behaviours, or anything else presented in this talk. In addition, the data
and metadata presented here is all completely fake, and this public demo
raises no privacy concerns.
The demo is presented using the Tabulator extension to Chrome, in order to
nicely format the RDF for human readability.
These elements
are defined by
the LDP
Specification
A SKOS Concept Scheme describing the
“nature” of the data in the repository
Optional - the link to the
meta-descriptors of each
record in the repository
(paginated using HTTP
headers defined by LDP)
The Record’s Meta-descriptor
The Record’s Meta-descriptor
Metadata about the
record (which metadata
is completely at the
discretion of the data
owner!)
The Record’s Meta-descriptor
Ontological information
about the type of
record… click through to:
rdf:type SIO:SIO_001027 (Medical Health Record)
The Record’s Meta-descriptor
There are 3 DCAT
Distributions for this
record
The Record’s Meta-descriptor
Each distribution has its own
format and download URL
(distributions are completely
optional, and up to the provider)
This would also be the place to
put license, accessibility, or
authentication metadata!
This provides an API-free way of accessing any record
in any dataset
Every step is just HTTP GET with
standard metadata following the DCAT ontology
Incremental drill-down from repository-level all the way to an
individual record
Useful metadata at all levels
Access is 100% under provider-control at all levels
This is NOT intended to be “efficient”!!
However, the alternative is to invent a query API, and then
force all repositories to implement it…
Not Gonna Happen!
This is lightweight, and easy to implement
Trade power for (hopefully) wider adoption...
package EHDN_Accessor; # this should be the same as your filename!
use strict;
use warnings;
use JSON;
use base 'FAIR::Accessor';
my $config = { title => 'European Huntington Disease Network Data Accessor',
serviceTextualDescription => 'Server for some ERDN Data',
textualAccessibilityInfo => "The information from this server requries no authentication", # this could also be a $URI describing the accessibiltiy
mechanizedAccessibilityInfo => "", # this must be a URI to an RDF document
textualLicenseInfo => "CC-BY", # this could also be a URI to the license info
mechanizedLicenseInfo => "", # this must be a URI to an RDF document
baseURI => "", # I don't know what this is used for yet, but I have a feeling I will need it!
ETAG_Base => "EHDN_Accessor_For_RegInfo",
localNamespaces => {ehdn => 'http://ehdn.org/some/items/', ehdnpred => 'http://ehdn.org/some/predicates/'},
localMetadataElements => [qw(erdnpred:fromHospital erdnpred:lastevaluatedDate) ], };
my $service = EHDN_Accessor->new(%$config);
$service->handle_requests;
sub get_all_meta_URIs {
my ($starting_at_record, $path_info) = @_;
$path_info ||="";
my %result = ( 'dc:title' => "EHDN Accessor Server",
'dcat:description' => "the prototype Accessor server for EHDN",
'dcat:identifier' => "handle:12345566798",
'dcat:keyword' => ["medical records", "rare diseases", "EHDN", "Linked Data Platform", 'HTT', 'huntington'],
'dcat:landingPage' => 'http://www.euro-hd.net/html/network',
'dcat:language' => 'en',
'dcat:publisher' => 'http://www.euro-hd.net',
'dcat:temporal' => 'http://reference.data.gov.uk/id/quarter/2006-Q1',
'dcat:theme' => 'http://biordf.org/DataFairPort/ConceptSchemes/Huntingtons.rdf',
'daml:has-Technical-Lead' => "Summer Student Joe",
'daml:has-Administrative-Contact' => "John Doe",
'daml:has-Program-Manager' => "Jane Doe",
'daml:has-Principle-Investigator' => "Big Doctor", );
my $BASE_URL = "http://" . $ENV{'SERVER_NAME'} . $ENV{'REQUEST_URI'} . $path_info;
my @known_records = ($BASE_URL . "/479-467-29X", $BASE_URL . "/768-599-467", );
$result{'void:entities'} = scalar(@known_records); # THE TOTAL *NUMBER* OF RECORDS THAT CAN BE SERVED
$result{'ldp:contains'} = @known_records; # the listref of record ids
return encode_json(%result);
}
sub get_distribution_URIs {
my ($self, $ID, $PATH_INFO) = @_;
my (%response, %formats, %metadata);
$formats{'text/html'} = 'http://myserver.org/ThisScript/record/479-467-29X.html';
$formats{'application/rdf+xml'} = 'http://myserver.org/ThisScript/record/479-467-29X.rdf';
$metadata{'rdf:type'} = ['edam:data_0006', 'sio:SIO_000088'];
extractDataFromSpreadsheet(%metadata, $ID);
$response{distributions} = %formats;
$response{metadata} = %metadata if (keys %metadata); # only set it if you can provided something
my $response = encode_json(%response);
return $response;
}
sub extractDataFromSpreadsheet{
my ($metadata, $ID) = @_;
use Spreadsheet::XLSX::Reader::LibXML;
my $db_file = "registry3-enrolment.xlsx.xlsx";
my $excel = Spreadsheet::XLSX::Reader::LibXML->new();
my $workbook = $excel->parse($db_file);
my ($sheet) = $workbook->worksheets;
my ($first, $last) = $sheet->row_range;
foreach my $row ($first .. $last) {
next unless ($sheet->get_cell($row, 0)->value eq $ID);
my $cell = $sheet->get_cell($row, 5);
$metadata->{'dcat:updateDate'} = $cell->value;
$cell = $sheet->get_cell($row, 1);
$metadata->{'dcat:releaseDate'} = $cell->value;
$cell = $sheet->get_cell($row, 3);
This is the only code that a provider
must implement… and much (almost
half!) of it is just tag/value definitions
If they don’t want to implement the full
set of drill-down behaviors then the
code is even smaller!
(This is the actual code - 68 lines -
running the demo you just saw. Most
of the heavy-lifting is handled by the
libraries I published yesterday)
Skunkworks Task #3 - [I]nteroperable
This is “the holy grail”!!
Skunkworks Task #3 - [I]nteroperable
This is “the holy grail”!!
This is where the FAIR Profile reveals its utility
“what it IS” vs. “what it IS NOT”
What a FAIR Profile is:
A meta-description of the (meta)data
in a repository
if you were to view it
from a particular “perspective”
(also known as a “lens” over the data)
Skunkworks Task #3 - [I]nteroperable
“FAIR Projectors”
A FAIR Projector is a (potentially) small, modular,
reusable Web based service that “projects” data
from a repository into the format
described by a FAIR Profile
Skunkworks Task #3 - [I]nteroperable
“FAIR Projectors”
A FAIR Projector is a (potentially) small, modular,
reusable Web based service that “projects” data
from a repository into the format
described by a FAIR Profile
http://linkeddatafragments.org/
RESTful access to RDF data resources
RESTful hypermedia controls (e.g. pagination)
defined by Hydra W3C Community Group
http://www.hydra-cg.com/
implementedBy
implementedBy
GET
implementedBy
2 Options for a projector:
implementedBy
2 Options for a projector:
Direct Access to Repository
implementedBy
2 Options for a projector:
OR access via a FAIR Accessor
implementedBy
Client receives
Stage 1: Kinds of questions we can ask
● How do I access the records in Repo X?
→ HTTP GET (Accessor URL)
● How do I access the records in Repo X in XML?
→ HTTP GET (Accessor URL)
→ HTTP GET (DCAT Dist URL)
● Can I please have the “biological tissue” field in Repository X
as FMA Ontology terms?
→ Search FAIRport Registry
→ Find matching FAIR Profile + Projector
→ HTTP GET (Projector URL)
FAIR Projector:
The first time I wrote one of these from scratch,
it was about 300 lines of Perl code,
and took about 6 hours
(including reading the LDF documentation!)
and it projected three different FAIR Profiles
The next thing on my TODO list is to write libraries to make this
easier; however, this is a much trickier thing to do!
Live Demo of a FAIR Projector
This demo is done over my own database:
http://antirrhinum.net
it will project the “Allele” slice of that database into three
different forms, using 3 different profiles. The demo uses a
FAIR Accessor (as described in the previous demo)
<?xml version="1.0" standalone="yes"?>
<Allele class="Allele" value="cho">
<Source>
<gene class="Locus" value="CHO" />
</Source>
<Location class="Laboratory" value="Schwarz-Sommer" />
<Description>
<Phenotype class="#Text" value="Habit:" />
<Phenotype class="#Text" value="Leaves: Thin and narrow starting from the 6th leaf. Buckled and warped along the axis of the leaf." />
<Phenotype class="#Text" value="Seedlings:" />
<Phenotype class="#Text" value="Cotyledons: no obvious change" />
<Phenotype class="#Text" value="Hypocotyl:" />
<Phenotype class="#Text" value="Inflorescence:" />
<Phenotype class="#Text" value="Flowers: Conspicuous sepal to petal transformations, particularly in 165E genetic background. Petals unfused. Carpel sometimes unfused and stunted." />
<Phenotype class="#Text" value="_____________" />
<Phenotype class="#Text" value="Upper lip:" />
<Phenotype class="#Text" value="Lower lip:" />
<Phenotype class="#Text" value="Bumps:" />
<Phenotype class="#Text" value="Seed: reduced germimation of mutant seed." />
<Phenotype class="#Text" value="Roots: root growth retarded; roots sometimes absent." />
<Phenotype class="#Text" value="Remarks: F2 74:25, though usually mutants are under-represented in F2 populations." />
<Phenotype class="#Text" value="Remarks: Identical phenotype to Des (Despenteado)" />
<Recessive />
</Description>
<Phenotype_picture class="Phenotype_Picture" value="cho~a" />
<Phenotype_picture class="Phenotype_Picture" value="cho~b" />
<Phenotype_picture class="Phenotype_Picture" value="cho-0" />
<Phenotype_picture class="Phenotype_Picture" value="cho-1" />
<Phenotype_picture class="Phenotype_Picture" value="zss_pict0027" />
<Phenotype_picture class="Phenotype_Picture" value="zss_pict0028" />
<Phenotype_picture class="Phenotype_Picture" value="zss_pict0029" />
<Expression_pattern_of class="Locus" value="FIM">
<Description class="#Text" value="FIM extends to first whorl" />
<Pick_me_to_call class="#txt" value="FIM_in_cho">
<Pick_me_to_call-2 class="#txt" value="FIM_in_cho.jpg" />
</Pick_me_to_call>
<Photo_by class="Author" value="Wilkinson MD" />
</Expression_pattern_of>
<Expression_pattern_of class="Locus" value="GLO">
<Description class="#Text" value="GLO expression in first whorl organs that ectopically express FIM" />
<Pick_me_to_call class="#txt" value="GLO_in_cho">
<Pick_me_to_call-2 class="#txt" value="GLO_in_cho.jpg" />
</Pick_me_to_call>
<Photo_by class="Author" value="Wilkinson MD" />
</Expression_pattern_of>
<Multi_mutant class="Multi_mutant" value="cho_fim-679" />
<Multi_mutant class="Multi_mutant" value="cho_fim-1" />
<Multi_mutant class="Multi_mutant" value="cho_fis" />
<Multi_mutant class="Multi_mutant" value="cho_def-gli" />
<Multi_mutant class="Multi_mutant" value="cho_inco" />
<Multi_mutant class="Multi_mutant" value="cho_glo-1" />
<Multi_mutant class="Multi_mutant" value="cho_glo-3D" />
</Allele>
The raw data, from
the repository
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:FAI="http://datafairport.org/schemas/FAIR-schema.owl#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:s="http://www.w3.org/2000/01/rdf-schema#">
<FAI:FAIRClass rdf:about="">
<FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/0c0c0c3c-5ce1-4df6-98d3-4c22a75748ea"/>
<FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/94037d0d-3d8e-4fc4-bd24-dafb85520089"/>
<FAI:onClassType rdf:resource="http://purl.obolibrary.org/obo/SO_0001023"/>
<dcterms:provenance rdf:resource="#Profile"/>
<s:label>FAIR Class of Allele</s:label>
</FAI:FAIRClass>
<FAI:FAIRProfile rdf:about="#Profile">
<FAI:hasClass rdf:resource=""/>
<dcterms:description>FAIR Profile Allele record properties, using textual descriptions and links to Gene Records</dcterms:description>
<dcterms:identifier>doi:Mark.Dragon.P1</dcterms:identifier>
<dcterms:license>Anyone may use this freely</dcterms:license>
<dcterms:organization>wilkinsonlab.info</dcterms:organization>
<dcterms:title>FAIR Profile of Descriptive Allele records</dcterms:title>
<rdf:type rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/>
<s:label>FAIR Profile Allele</s:label>
</FAI:FAIRProfile>
<FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/0c0c0c3c-5ce1-4df6-98d3-4c22a75748ea">
<FAI:allowedValues rdf:resource="../ConceptSchemes/xsdstring"/>
<FAI:onPropertyType rdf:resource="http://purl.org/dc/terms/description"/>
<s:label>description</s:label>
</FAI:FAIRProperty>
<FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/94037d0d-3d8e-4fc4-bd24-dafb85520089">
<FAI:allowedValues rdf:resource="../ConceptSchemes/SequenceOntologyGene704"/>
<FAI:maxCount>1</FAI:maxCount>
<FAI:minCount>1</FAI:minCount>
<FAI:onPropertyType rdf:resource="http://purl.obolibrary.org/obo/so_variant_of"/>
<s:label>variant of</s:label>
</FAI:FAIRProperty>
</rdf:RDF>
FAIR Profile #1 - “Descriptive”
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:FAI="http://datafairport.org/schemas/FAIR-schema.owl#"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:s="http://www.w3.org/2000/01/rdf-schema#">
<FAI:FAIRClass rdf:about="">
<FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/6e35cbde-3e6a-430d-be22-
e87507c71827"/>
<FAI:onClassType rdf:resource="http://purl.obolibrary.org/obo/SO_0001023"/>
<dc:provenance rdf:resource="#Profile"/>
<s:label>FAIR Class of Allele</s:label>
</FAI:FAIRClass>
<FAI:FAIRProfile rdf:about="#Profile">
<FAI:hasClass rdf:resource=""/>
<dc:description>FAIR Profile the Image portion of an Allele record using SIO:Image classification</dc:description>
<dc:identifier>doi:Mark.Dragon.P2</dc:identifier>
<dc:license>Anyone may use this freely</dc:license>
<dc:organization>wilkinsonlab.info</dc:organization>
<dc:title>FAIR Profile the Image portion of an Allele record</dc:title>
<rdf:type rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/>
<s:label>FAIR Profile of Allele Images(SIO)</s:label>
</FAI:FAIRProfile>
<FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/6e35cbde-3e6a-430d-be22-e87507c71827">
<FAI:allowedValues rdf:resource="../ConceptSchemes/SIOOntologyImage81"/>
<FAI:onPropertyType rdf:resource="http://semanticscience.org/ontology/SIO_000205"/>
<s:label>is represented by</s:label>
</FAI:FAIRProperty>
</rdf:RDF>
FAIR Profile #2 - “Image using SIO ontology”
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:FAI="http://datafairport.org/schemas/FAIR-schema.owl#"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:s="http://www.w3.org/2000/01/rdf-schema#">
<FAI:FAIRClass rdf:about="">
<FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/4fbb6c39-1bbe-49bf-af36-
c966c3e233a1"/>
<FAI:onClassType rdf:resource="http://purl.obolibrary.org/obo/SO_0001023"/>
<dcterms:provenance rdf:resource="#Profile"/>
<s:label>FAIR Class of Allele</s:label>
</FAI:FAIRClass>
<FAI:FAIRProfile rdf:about="#Profile">
<FAI:hasClass rdf:resource=""/>
<dcterms:description>FAIR Profile the Image portion of an Allele record using EDAM:Image classification</dcterms:description>
<dcterms:identifier>doi:Mark.Dragon.P3</dcterms:identifier>
<dcterms:license>Anyone may use this freely</dcterms:license>
<dcterms:organization>wilkinsonlab.info</dcterms:organization>
<dcterms:title>FAIR Profile the Image portion of an Allele record</dcterms:title>
<rdf:type rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/>
<s:label>FAIR Profile Allele Images (EDAM)</s:label>
</FAI:FAIRProfile>
<FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/4fbb6c39-1bbe-49bf-af36-c966c3e233a1">
<FAI:allowedValues rdf:resource="../ConceptSchemes/EDAMOntologyImage2968"/>
<FAI:onPropertyType rdf:resource="http://semanticscience.org/ontology/SIO_000205"/>
<s:label>is represented by</s:label>
</FAI:FAIRProperty>
</rdf:RDF>
FAIR Profile #3 - “Image using EDAM ontology”
FAIR Accessor Step 1
(http://antirrhinum.net/cgi-bin/LDP/Alleles)
FAIR Accessor Step 2
(click on “cho” in the list of alleles)
The Projector takes the application/xml distribution and projects it...
XML of the Allele records
projected using the “descriptive” FAIR Profile
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileAlleleDescriptions/
XML of the Allele records (SAME XML!)
projected using the “SIO Image” FAIR Profile
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO/
http://semanticscience.org/resource/SIO_000081
XML of the Allele records (SAME XML!)
projected using the “EDAM Image” FAIR Profile
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO/
http://edamontology.org/data_2968
XML of the Allele records (SAME XML!)
projected using the “EDAM Image” FAIR Profile
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO/
Pagination controls from
the Hydra ontology...
This was a very “lightweight” demo,
but it showed the point
Same data, different lenses (FAIR Profiles)
In the case of this demo, all three Projections used the
same FAIR Accessor
It is obviously more efficient to reach-into the database
directly and skip the Accessor altogether. Yes!
However, the point of this demo was to show the
“worst case scenario” where you need to FAIR Project
something that you have absolutely no control over
Stage 2: Leverage the Modularity
implementedBy
Stage 2: Leverage the Modularity
implementedByimplementedBy
Stage 2: Leverage the Modularity
implementedByimplementedBy
Repository X
Repository Y
Stage 2: Leverage the Modularity
implementedByimplementedBy
Stage 2: Leverage the Modularity
implementedByimplementedBy
Merged data to be cross-queried
Main features of FAIR Profiles
● Do not require repository participation - anyone can write a Profile. Most of
the time it should be possible to write an accessor too, even by screen-
scraping!
● Provides a end-user-purpose-driven, potentially non-comprehensive “view”
on a repository
● FAIR Profiles of any given repository facet may be different! May use
different vocabularies or may interpret fields differently, depending on the
needs of the Profile author
● FAIR profiles can/should be indexed and shared (e.g. in a FAIRport
Registry), to facilitate cross-repository interoperability and integration
● There is no (obvious) reason why a FAIR profile could not be used to
describe the DATA in the repository, not just the metadata…
o my Antirrhinum Allele example does exactly that!
● FAIR Profiles can be used both at the “read” and at the “write” end of data
publishing… (Force 11 Oxford meeting demo was for “write” interfaces)
Main features of FAIRPort Platform
● GET GET GET!! We didn’t invent any new technology or API :-) :-)
● All components modular, re-usable, and often will be written by 3rd parties
o → encourages the creation of an ecosystem of these lightweight,
discoverable little data transformers
● All components identified by URL, and can be “cobbled together” in whatever
way a client needs on a particular day (and this can happen automatically!)
● Because everything is identified by a URL, and we only use HTTP GET,
components can be “chained” (e.g. the Projector calls GET on the URL of
another Projector)
→ i.e. I don’t care how the Projector or Accessor work “under the hood”,
it’s all the same GET to me!
Skunkworks Participants
● Mark Wilkinson
● Michel Dumontier
● Barend Mons
● Tim Clark
● Jun Zhao
● Paolo Ciccarese
● Paul Groth
● Erik van Mulligen
● Luiz Olavo Bonino da
Silva Santos
● Matthew Gamble
● Carole Goble
● Joël Kuiper
● Morris Swertz
● Erik Schultes
● Erik Schultes
● Mercè Crosas
● Adrian Garcia
● Philip Durbin
● Jeffrey Grethe
● Katy Wolstencroft
● Sudeshna Das
● M. Emily Merrill
Working Examples
- One (small) dataset (the Allele slice of my own DragonDB): http://antirrhinum.net An example record in the Repository's native format is
here: http://antirrhinum.net/cgi-bin/ace/generic/xml/DragonDB?name=cho;class=Allele
- Three different FAIR Profiles that could be applied to Allele records (from ANY repository) - one with textual descriptions and gene cross-
references, the other two with phenotypic images described using the SIO ontology, or the EDAM ontology (respectively). This is the "F" in
FAIR, since these can (in principle) be searched and queried in order to find various representations of your data of interest. Profiles are
associated - in a many-to-many relationship - with specific repositories via “Projectors” (see below). A Repository may project into many
different Profiles, and many Repositories may project their data into the same Profile.
* http://biordf.org/DataFairPort/ProfileSchemas/Allele_Profile_Descriptive.rdf
* http://biordf.org/DataFairPort/ProfileSchemas/Allele_Profile_EDAM.rdf
* http://biordf.org/DataFairPort/ProfileSchemas/Allele_ProfileSIO.rdf
- a "FAIR Accessor" that provides a Linked Data Platform-compliant way to retrieve all of the URIs for the Allele records, as well as their
various representations (described as DCAT Distributions). This is the "A" in FAIR. http://antirrhinum.net/cgi-bin/LDP/Alleles
- a "FAIR Projector" that takes the data from the Allele records and "projects" it as RDF that is compliant with whichever Profile you chose.
This is the 'I" in FAIR. http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler If you call HTTP GET on that URL, it will report to
you what FAIR Profiles it is capable of projecting, using which FAIR Accessor (if any) In this example, all three Projections use an Accesor,
and use the same Accessor in each case. This is the ‘worst case scenario’, as it represents the slowest, most roundabout way to access
a Repository’s records - it would generally only be used if the Repository provides no externally-facing API of its own! (that’s why the
demo runs so slowly…) I did the demo this way so that everyone could see every component “working together”.
Three “Projections” of the DragonDB Allele Data (note that most of the process above is achieved simply by called GET on the URLs
below!!)
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileAlleleDescriptions
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO
http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesEDAM
This presentation is licensed CC-BY
Mark Wilkinson (markw@illuminae.com)
https://goo.gl/YEdwwB
@markmoby

More Related Content

What's hot

What's new with Apache Tika?
What's new with Apache Tika?What's new with Apache Tika?
What's new with Apache Tika?gagravarr
 
Content extraction with apache tika
Content extraction with apache tikaContent extraction with apache tika
Content extraction with apache tikaJukka Zitting
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterMaking Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterEDB
 
Apache Tika end-to-end
Apache Tika end-to-endApache Tika end-to-end
Apache Tika end-to-endgagravarr
 
Fire kit ios (r-baldwin)
Fire kit ios (r-baldwin)Fire kit ios (r-baldwin)
Fire kit ios (r-baldwin)DevDays
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)DevDays
 
Tim Pugh-SPEDDEXES 2014
Tim Pugh-SPEDDEXES 2014Tim Pugh-SPEDDEXES 2014
Tim Pugh-SPEDDEXES 2014aceas13tern
 
Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Ravi Okade
 
Data Enthusiasts London: Scalable and Interoperable data services. Applied to...
Data Enthusiasts London: Scalable and Interoperable data services. Applied to...Data Enthusiasts London: Scalable and Interoperable data services. Applied to...
Data Enthusiasts London: Scalable and Interoperable data services. Applied to...Andy Petrella
 
LDP4j: A framework for the development of interoperable read-write Linked Da...
LDP4j: A framework for the development of interoperable read-write Linked Da...LDP4j: A framework for the development of interoperable read-write Linked Da...
LDP4j: A framework for the development of interoperable read-write Linked Da...Nandana Mihindukulasooriya
 
Text and metadata extraction with Apache Tika
Text and metadata extraction with Apache TikaText and metadata extraction with Apache Tika
Text and metadata extraction with Apache TikaJukka Zitting
 
NoSQL Databases, Not just a Buzzword
NoSQL Databases, Not just a Buzzword NoSQL Databases, Not just a Buzzword
NoSQL Databases, Not just a Buzzword Haitham El-Ghareeb
 
A bottom up approach for licences classification and selection
A bottom up approach for licences classification and selectionA bottom up approach for licences classification and selection
A bottom up approach for licences classification and selectionEnrico Daga
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Olaf Hartig
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)DevDays
 
Content analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaContent analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaPaolo Mottadelli
 
Deploying RDF Linked Data via Virtuoso Universal Server
Deploying RDF Linked Data via Virtuoso Universal ServerDeploying RDF Linked Data via Virtuoso Universal Server
Deploying RDF Linked Data via Virtuoso Universal Serverrumito
 
2014.12 - Let's Disco - 2 (EDDI 2014)
2014.12 - Let's Disco - 2 (EDDI 2014)2014.12 - Let's Disco - 2 (EDDI 2014)
2014.12 - Let's Disco - 2 (EDDI 2014)Dr.-Ing. Thomas Hartmann
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)DevDays
 

What's hot (20)

What's new with Apache Tika?
What's new with Apache Tika?What's new with Apache Tika?
What's new with Apache Tika?
 
Content extraction with apache tika
Content extraction with apache tikaContent extraction with apache tika
Content extraction with apache tika
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data CenterMaking Postgres Central in Your Data Center
Making Postgres Central in Your Data Center
 
Apache Tika end-to-end
Apache Tika end-to-endApache Tika end-to-end
Apache Tika end-to-end
 
Fire kit ios (r-baldwin)
Fire kit ios (r-baldwin)Fire kit ios (r-baldwin)
Fire kit ios (r-baldwin)
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)
 
Tim Pugh-SPEDDEXES 2014
Tim Pugh-SPEDDEXES 2014Tim Pugh-SPEDDEXES 2014
Tim Pugh-SPEDDEXES 2014
 
Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)Optimizing Application Architecture (.NET/Java topics)
Optimizing Application Architecture (.NET/Java topics)
 
Data Enthusiasts London: Scalable and Interoperable data services. Applied to...
Data Enthusiasts London: Scalable and Interoperable data services. Applied to...Data Enthusiasts London: Scalable and Interoperable data services. Applied to...
Data Enthusiasts London: Scalable and Interoperable data services. Applied to...
 
LDP4j: A framework for the development of interoperable read-write Linked Da...
LDP4j: A framework for the development of interoperable read-write Linked Da...LDP4j: A framework for the development of interoperable read-write Linked Da...
LDP4j: A framework for the development of interoperable read-write Linked Da...
 
Text and metadata extraction with Apache Tika
Text and metadata extraction with Apache TikaText and metadata extraction with Apache Tika
Text and metadata extraction with Apache Tika
 
NoSQL Databases, Not just a Buzzword
NoSQL Databases, Not just a Buzzword NoSQL Databases, Not just a Buzzword
NoSQL Databases, Not just a Buzzword
 
A bottom up approach for licences classification and selection
A bottom up approach for licences classification and selectionA bottom up approach for licences classification and selection
A bottom up approach for licences classification and selection
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)
 
Content analysis for ECM with Apache Tika
Content analysis for ECM with Apache TikaContent analysis for ECM with Apache Tika
Content analysis for ECM with Apache Tika
 
Deploying RDF Linked Data via Virtuoso Universal Server
Deploying RDF Linked Data via Virtuoso Universal ServerDeploying RDF Linked Data via Virtuoso Universal Server
Deploying RDF Linked Data via Virtuoso Universal Server
 
2014.12 - Let's Disco - 2 (EDDI 2014)
2014.12 - Let's Disco - 2 (EDDI 2014)2014.12 - Let's Disco - 2 (EDDI 2014)
2014.12 - Let's Disco - 2 (EDDI 2014)
 
Hibernate
HibernateHibernate
Hibernate
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)
 

Viewers also liked

IBC FAIR Data Prototype Implementation slideshow
IBC FAIR Data Prototype Implementation   slideshowIBC FAIR Data Prototype Implementation   slideshow
IBC FAIR Data Prototype Implementation slideshowMark Wilkinson
 
Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014Mark Wilkinson
 
i楼市
i楼市i楼市
i楼市MobileSearch
 
SADI in Taverna Tutorial
SADI in Taverna TutorialSADI in Taverna Tutorial
SADI in Taverna TutorialMark Wilkinson
 
Importancia Del Agua Para El Cerebro
Importancia Del Agua Para El CerebroImportancia Del Agua Para El Cerebro
Importancia Del Agua Para El Cerebropipis397
 
The BioMoby Semantic Annotation Experiment
The BioMoby Semantic Annotation ExperimentThe BioMoby Semantic Annotation Experiment
The BioMoby Semantic Annotation ExperimentMark Wilkinson
 
Internet Protocol
Internet ProtocolInternet Protocol
Internet Protocolguesta8dc1
 
Building a Mega Community with PressWork
Building a Mega Community with PressWorkBuilding a Mega Community with PressWork
Building a Mega Community with PressWorkBrendan Sera-Shriar
 
ÂĄALIMENTOS Y MALESTARES!
ÂĄALIMENTOS Y MALESTARES!ÂĄALIMENTOS Y MALESTARES!
ÂĄALIMENTOS Y MALESTARES!pipis397
 
SWAT4LS 2011: SADI Knowledge Explorer Plug-in
SWAT4LS 2011: SADI Knowledge Explorer Plug-inSWAT4LS 2011: SADI Knowledge Explorer Plug-in
SWAT4LS 2011: SADI Knowledge Explorer Plug-inMark Wilkinson
 
It’s a WIN, WIN: ‘WordPress On Windows’
It’s a WIN, WIN: ‘WordPress On Windows’It’s a WIN, WIN: ‘WordPress On Windows’
It’s a WIN, WIN: ‘WordPress On Windows’Brendan Sera-Shriar
 
Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...
Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...
Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...Luc Sluijsmans
 
Portfolio PlusAnimations 2009 NL
Portfolio PlusAnimations 2009 NLPortfolio PlusAnimations 2009 NL
Portfolio PlusAnimations 2009 NLrogiervanmeeuwen
 
Using Semantics to personalize medical research
Using Semantics to personalize medical researchUsing Semantics to personalize medical research
Using Semantics to personalize medical researchMark Wilkinson
 
ISoLA 2010: SADI Taverna plug-in
ISoLA 2010:  SADI Taverna plug-inISoLA 2010:  SADI Taverna plug-in
ISoLA 2010: SADI Taverna plug-inMark Wilkinson
 
Good library use
Good library useGood library use
Good library usePaola Padilla
 

Viewers also liked (20)

IBC FAIR Data Prototype Implementation slideshow
IBC FAIR Data Prototype Implementation   slideshowIBC FAIR Data Prototype Implementation   slideshow
IBC FAIR Data Prototype Implementation slideshow
 
Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014Presentation to the J. Craig Venter Institute, Dec. 2014
Presentation to the J. Craig Venter Institute, Dec. 2014
 
i楼市
i楼市i楼市
i楼市
 
SADI in Taverna Tutorial
SADI in Taverna TutorialSADI in Taverna Tutorial
SADI in Taverna Tutorial
 
Bambu Communication Group Credential
Bambu Communication Group CredentialBambu Communication Group Credential
Bambu Communication Group Credential
 
Gene Search
Gene SearchGene Search
Gene Search
 
Importancia Del Agua Para El Cerebro
Importancia Del Agua Para El CerebroImportancia Del Agua Para El Cerebro
Importancia Del Agua Para El Cerebro
 
The BioMoby Semantic Annotation Experiment
The BioMoby Semantic Annotation ExperimentThe BioMoby Semantic Annotation Experiment
The BioMoby Semantic Annotation Experiment
 
Internet Protocol
Internet ProtocolInternet Protocol
Internet Protocol
 
Combine Experiments
Combine ExperimentsCombine Experiments
Combine Experiments
 
Building a Mega Community with PressWork
Building a Mega Community with PressWorkBuilding a Mega Community with PressWork
Building a Mega Community with PressWork
 
Analyze Your Modules
Analyze Your ModulesAnalyze Your Modules
Analyze Your Modules
 
ÂĄALIMENTOS Y MALESTARES!
ÂĄALIMENTOS Y MALESTARES!ÂĄALIMENTOS Y MALESTARES!
ÂĄALIMENTOS Y MALESTARES!
 
SWAT4LS 2011: SADI Knowledge Explorer Plug-in
SWAT4LS 2011: SADI Knowledge Explorer Plug-inSWAT4LS 2011: SADI Knowledge Explorer Plug-in
SWAT4LS 2011: SADI Knowledge Explorer Plug-in
 
It’s a WIN, WIN: ‘WordPress On Windows’
It’s a WIN, WIN: ‘WordPress On Windows’It’s a WIN, WIN: ‘WordPress On Windows’
It’s a WIN, WIN: ‘WordPress On Windows’
 
Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...
Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...
Eindadvies over-de-vernieuwing-van-de-examenprogrammas-maatschappijwetenschap...
 
Portfolio PlusAnimations 2009 NL
Portfolio PlusAnimations 2009 NLPortfolio PlusAnimations 2009 NL
Portfolio PlusAnimations 2009 NL
 
Using Semantics to personalize medical research
Using Semantics to personalize medical researchUsing Semantics to personalize medical research
Using Semantics to personalize medical research
 
ISoLA 2010: SADI Taverna plug-in
ISoLA 2010:  SADI Taverna plug-inISoLA 2010:  SADI Taverna plug-in
ISoLA 2010: SADI Taverna plug-in
 
Good library use
Good library useGood library use
Good library use
 

Similar to Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015

Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...datascienceiqss
 
Force11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, OxfordForce11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, OxfordMark Wilkinson
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013François Belleau
 
Michael Lang Sr. Presentation
Michael Lang Sr. PresentationMichael Lang Sr. Presentation
Michael Lang Sr. PresentationMediabistro
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic WebIvan Herman
 
Data Engineering for Data Scientists
Data Engineering for Data Scientists Data Engineering for Data Scientists
Data Engineering for Data Scientists jlacefie
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012François Belleau
 
Apache Spark 101 - Demi Ben-Ari - Panorays
Apache Spark 101 - Demi Ben-Ari - PanoraysApache Spark 101 - Demi Ben-Ari - Panorays
Apache Spark 101 - Demi Ben-Ari - PanoraysDemi Ben-Ari
 
Overview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developmentsOverview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developmentsMaxime Lefrançois
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionFlink Forward
 
Get your organization’s feet wet with Semantic Web Technologies
Get your organization’s feet wet with Semantic Web TechnologiesGet your organization’s feet wet with Semantic Web Technologies
Get your organization’s feet wet with Semantic Web TechnologiesAndré Torkveen
 
Agile data lake? An oxymoron?
Agile data lake? An oxymoron?Agile data lake? An oxymoron?
Agile data lake? An oxymoron?samthemonad
 
Document Based Data Modeling Technique
Document Based Data Modeling TechniqueDocument Based Data Modeling Technique
Document Based Data Modeling TechniqueCarmen Sanborn
 
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...Mark Wilkinson
 
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...Mark Wilkinson
 
Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...Gautier Poupeau
 
Spark meetup TCHUG
Spark meetup TCHUGSpark meetup TCHUG
Spark meetup TCHUGRyan Bosshart
 
(Big) Data (Science) Skills
(Big) Data (Science) Skills(Big) Data (Science) Skills
(Big) Data (Science) SkillsOscar Corcho
 
SWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebSWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebPascal-Nicolas Becker
 

Similar to Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015 (20)

Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
Data FAIRport Skunkworks: Common Repository Access Via Meta-Metadata Descript...
 
Force11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, OxfordForce11 JDDCP workshop presentation, @ Force2015, Oxford
Force11 JDDCP workshop presentation, @ Force2015, Oxford
 
Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013Producing, publishing and consuming linked data - CSHALS 2013
Producing, publishing and consuming linked data - CSHALS 2013
 
Michael Lang Sr. Presentation
Michael Lang Sr. PresentationMichael Lang Sr. Presentation
Michael Lang Sr. Presentation
 
State of the Semantic Web
State of the Semantic WebState of the Semantic Web
State of the Semantic Web
 
Data Engineering for Data Scientists
Data Engineering for Data Scientists Data Engineering for Data Scientists
Data Engineering for Data Scientists
 
Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012Bio2RDF presentation at Combine 2012
Bio2RDF presentation at Combine 2012
 
Apache Spark 101 - Demi Ben-Ari - Panorays
Apache Spark 101 - Demi Ben-Ari - PanoraysApache Spark 101 - Demi Ben-Ari - Panorays
Apache Spark 101 - Demi Ben-Ari - Panorays
 
Overview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developmentsOverview of the SPARQL-Generate language and latest developments
Overview of the SPARQL-Generate language and latest developments
 
Scaling the (evolving) web data –at low cost-
Scaling the (evolving) web data –at low cost-Scaling the (evolving) web data –at low cost-
Scaling the (evolving) web data –at low cost-
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
 
Get your organization’s feet wet with Semantic Web Technologies
Get your organization’s feet wet with Semantic Web TechnologiesGet your organization’s feet wet with Semantic Web Technologies
Get your organization’s feet wet with Semantic Web Technologies
 
Agile data lake? An oxymoron?
Agile data lake? An oxymoron?Agile data lake? An oxymoron?
Agile data lake? An oxymoron?
 
Document Based Data Modeling Technique
Document Based Data Modeling TechniqueDocument Based Data Modeling Technique
Document Based Data Modeling Technique
 
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
Tech. session : Interoperability and Data FAIRness emerges from a novel combi...
 
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
FAIR Data Prototype - Interoperability and FAIRness through a novel combinati...
 
Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...Why I don't use Semantic Web technologies anymore, event if they still influe...
Why I don't use Semantic Web technologies anymore, event if they still influe...
 
Spark meetup TCHUG
Spark meetup TCHUGSpark meetup TCHUG
Spark meetup TCHUG
 
(Big) Data (Science) Skills
(Big) Data (Science) Skills(Big) Data (Science) Skills
(Big) Data (Science) Skills
 
SWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic WebSWIB14 Weaving repository contents into the Semantic Web
SWIB14 Weaving repository contents into the Semantic Web
 

More from Mark Wilkinson

FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1Mark Wilkinson
 
Introducing the fair evaluator
Introducing the fair evaluatorIntroducing the fair evaluator
Introducing the fair evaluatorMark Wilkinson
 
FAIR Projector Builder
FAIR Projector BuilderFAIR Projector Builder
FAIR Projector BuilderMark Wilkinson
 
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th PlenarysmartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th PlenaryMark Wilkinson
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Mark Wilkinson
 
Sample data and other ur ls
Sample data and other ur lsSample data and other ur ls
Sample data and other ur lsMark Wilkinson
 
Example code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web ServiceExample code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web ServiceMark Wilkinson
 
Tutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-servicesTutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-servicesMark Wilkinson
 
Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...Mark Wilkinson
 
SADI CSHALS 2013
SADI CSHALS 2013SADI CSHALS 2013
SADI CSHALS 2013Mark Wilkinson
 
Web Science 2.0 - in silico science
Web Science 2.0 - in silico scienceWeb Science 2.0 - in silico science
Web Science 2.0 - in silico scienceMark Wilkinson
 
Web Science - ISoLA 2012
Web Science - ISoLA 2012Web Science - ISoLA 2012
Web Science - ISoLA 2012Mark Wilkinson
 
Web Science, SADI, and the Singularity
Web Science, SADI, and the SingularityWeb Science, SADI, and the Singularity
Web Science, SADI, and the SingularityMark Wilkinson
 
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...Mark Wilkinson
 
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)Mark Wilkinson
 
Technologies, methods and challenges to data sharing and aggrigation
Technologies, methods and challenges to data sharing and aggrigationTechnologies, methods and challenges to data sharing and aggrigation
Technologies, methods and challenges to data sharing and aggrigationMark Wilkinson
 
The Scientific Method on the Semantic Web
The Scientific Method on the Semantic WebThe Scientific Method on the Semantic Web
The Scientific Method on the Semantic WebMark Wilkinson
 
How SADI & SHARE help restore the Scientific Method to in silico science
How SADI & SHARE help restore the Scientific Method to in silico scienceHow SADI & SHARE help restore the Scientific Method to in silico science
How SADI & SHARE help restore the Scientific Method to in silico scienceMark Wilkinson
 
The Semantic Web - This time... its Personal
The Semantic Web - This time... its PersonalThe Semantic Web - This time... its Personal
The Semantic Web - This time... its PersonalMark Wilkinson
 

More from Mark Wilkinson (20)

FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1FAIR Metrics - Presentation to NIH KC1
FAIR Metrics - Presentation to NIH KC1
 
Introducing the fair evaluator
Introducing the fair evaluatorIntroducing the fair evaluator
Introducing the fair evaluator
 
FAIR Projector Builder
FAIR Projector BuilderFAIR Projector Builder
FAIR Projector Builder
 
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th PlenarysmartAPIs:  EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
smartAPIs: EUDAT Semantic Working Group Presentation @ RDA 9th Plenary
 
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
Building SADI Services Tutorial - SIB Workshop, Geneva, December 2015
 
Sample data and other ur ls
Sample data and other ur lsSample data and other ur ls
Sample data and other ur ls
 
Example code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web ServiceExample code for the SADI BMI Calculator Web Service
Example code for the SADI BMI Calculator Web Service
 
Sadi service
Sadi serviceSadi service
Sadi service
 
Tutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-servicesTutorial - Creating SADI semantic-web-services
Tutorial - Creating SADI semantic-web-services
 
Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...Enhancing Reproducibility and Transparency in Clinical Research through Seman...
Enhancing Reproducibility and Transparency in Clinical Research through Seman...
 
SADI CSHALS 2013
SADI CSHALS 2013SADI CSHALS 2013
SADI CSHALS 2013
 
Web Science 2.0 - in silico science
Web Science 2.0 - in silico scienceWeb Science 2.0 - in silico science
Web Science 2.0 - in silico science
 
Web Science - ISoLA 2012
Web Science - ISoLA 2012Web Science - ISoLA 2012
Web Science - ISoLA 2012
 
Web Science, SADI, and the Singularity
Web Science, SADI, and the SingularityWeb Science, SADI, and the Singularity
Web Science, SADI, and the Singularity
 
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
Evaluating Hypotheses using SPARQL-DL as an abstract workflow language to cho...
 
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
 
Technologies, methods and challenges to data sharing and aggrigation
Technologies, methods and challenges to data sharing and aggrigationTechnologies, methods and challenges to data sharing and aggrigation
Technologies, methods and challenges to data sharing and aggrigation
 
The Scientific Method on the Semantic Web
The Scientific Method on the Semantic WebThe Scientific Method on the Semantic Web
The Scientific Method on the Semantic Web
 
How SADI & SHARE help restore the Scientific Method to in silico science
How SADI & SHARE help restore the Scientific Method to in silico scienceHow SADI & SHARE help restore the Scientific Method to in silico science
How SADI & SHARE help restore the Scientific Method to in silico science
 
The Semantic Web - This time... its Personal
The Semantic Web - This time... its PersonalThe Semantic Web - This time... its Personal
The Semantic Web - This time... its Personal
 

Recently uploaded

VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 

Recently uploaded (20)

VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 

Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015

  • 1. Data FAIRport Skunkworks First Prototype Demo of Legacy Data Repository Discovery and Interoperability (Mark D Wilkinson, Presentation to Elsevier, Jul, 2015)
  • 2. This presentation is licensed CC-BY Mark Wilkinson (markw@illuminae.com) https://goo.gl/YEdwwB @markmoby
  • 3. EU Lead Mark Wilkinson Isaac Peral Distinguished Researcher, CBGP-UPM, Madrid USA Lead Michel Dumontier Associate Professor, Biomedical Informatics, Stanford, USA FAIRport Project Lead Barend Mons Professor, Leiden University Medical Centre, Netherlands Data FAIRport Skunkworks Common repository access via meta-meta- descriptors and homogenous accessors
  • 4. What is a FAIRport? ● Findable - (meta)data should be uniquely and persistently identifiable ● Accessible - identifiers should provide a mechanism for (meta)data access, including authentication, access protocol, license, etc. ● Interoperable - (meta)data should be machine-accessible, using a machine-parseable syntax and, where possible, shared common vocabularies. ● Reusable - there should be sufficient machine-readable metadata that it is possible to “integrate like-with-like”, and that component data objects can be precisely and comprehensively cited post-integration.
  • 6. End-user view of “The Problem” Tissue rejection experimental context. Today, I’m looking for microarray data of human liver cells on a time-course following liver transplant. What repositories could contain such data? ● GEO? EUDat? FigShare? Dryad? Atlas? ● What fields in those repositories would I need to search, using what vocabularies, to find the microarray studies that are relevant?
  • 7. Dissecting the problem There are a lot of repositories! General Purpose: Dataverse, Dryad, EUDat, Figshare, etc. Special Purpose: PDB, UniProt, NCBI, GEO, Atlas, EnsEMBL
  • 8. Dissecting the problem Lack of harmonized metadata structures, or even rich descriptions of the contents of these repositories, hinders us from (for example): ● knowing where we can look for certain types of data ● knowing if two repositories contain records about the same thing ● Cross-referencing or “joining” across repositories to integrate disparate data about the same thing ● Knowing which repository I could/should deposit my data to (and how)
  • 9. “Skunkworks” Challenge If we wanted to enable this kind of FAIR discovery and integration over myriad repositories, what infrastructure (existing/new) would we need?
  • 10. If we wanted to enable this kind of FAIR discovery and integration over myriad repositories, what infrastructure (existing/new) would we need? Discussions with Tim Clark revealed that the core objectives of Skunkworks were very similar to those of Force 11 Data Citation Implementation Working Group Team 4 - “Common repository interfaces” ...so we joined forces :-) “Skunkworks” Challenge
  • 12. Shared Metadata Descriptors? They already exist! (e.g. DCAT) Are not (yet) widely implemented But are not sufficiently rich... ...only describe “core” metadata We need to query richer metadata like experimental context and domain-specific data elements
  • 14. So... extend DCAT? ...extend it where?... too many specialist domains & data-types resistance to harmonization resistance to implementation (time, money, expertise, ‘just don’t care’) attempting to impose standards is a Mug’s game!
  • 16. Common provider-implemented API? a la TDWG/TAPIR and caBIO... too many specialist domains & data-types resistance to harmonization resistance to implementation (time, money, expertise, ‘just don’t care’) attempting to impose standards is a Mug’s game!
  • 17. Where else could the solution be? What exactly *is* our problem?
  • 18. What exactly *is* our problem? Data Record (e.g. XML, RDF)
  • 19. What exactly *is* our problem? Data Record (e.g. XML, RDF) Data Schema (e.g. XMLS, RDFS) Defines
  • 20. What exactly *is* our problem? Data Record (e.g. XML, RDF) Data Schema (e.g. XMLS, RDFS) Metadata Record (e.g. DCAT-compliant RDF) Defines Describes
  • 21. What exactly *is* our problem? Data Record (e.g. XML, RDF) Data Schema (e.g. XMLS, RDFS) Metadata Record (e.g. DCAT-compliant RDF) (IF the repository uses DCAT) DCAT RDFS Schema (IF the repository uses DCAT…) Defines Describes Defines
  • 22. What exactly *is* our problem? Data Record (e.g. XML, RDF) Data Schema (e.g. XMLS, RDFS) Metadata Record (e.g. DCAT-compliant RDF) (IF the repository uses DCAT) DCAT RDFS Schema (IF the repository uses DCAT…) Defines Describes Defines If everyone used DCAT, we could at least query the core metadata of all repositories… ...but they don’t... ...and core isn’t rich enough anyway...
  • 23. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema REALITY
  • 24. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema Repositories don’t all use DCAT Schema
  • 25. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema Those that use DCAT Schema, use only parts of it
  • 26. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema Those that don’t use DCAT use a myriad of alternatives (some very loosely defined)
  • 27. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema And don’t necessarily use all elements of those alternatives either
  • 28. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema So we need to find a way to do RICH queries over all of these?
  • 29. What exactly *is* our problem? XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema We need a way to describe the descriptors...
  • 30. Desiderata of meta-meta descriptors ● Must describe legacy data (i.e. not just DCAT or other “modern” data) ● Must describe a multitude of data formats (XML, RDF, Key/Value, etc.) ● Must be capable of describing any kind of value constraint, e.g. plain text, numerical, arbitrary CV, rdf:range, or equivalent OWL construct ● Must be modular, identifiable, shareable, and reusable (to stem the proliferation of new formats) ● Must be hierarchical to allow composite re-use of shared descriptors ● Must use standard technologies, and re-use existing vocabularies if poss. ● Must be extremely lightweight and “trivial” to create ● Must NOT require the participation of the repository host (no buy-in required)
  • 31. The Solution? (or at least, our best attempt to date!)
  • 32. Exemplar use-cases: ● A piece of software that can generate a “sensible” data submission form for any repository (at the Force 2015 meeting a few months ago I gave a presentation of a working example of this… so I won’t repeat that today…) ● A piece of software that can generate a “sensible” query form/interface for any repository (demonstration of this today!) Skunkworks Task #1 - [F]indable Invent harmonized cross-repository meta- descriptors
  • 33. “FAIR Profiles” FAIR Profiles provide a common way to describe a repository’s metadata (and data, for that matter!)
  • 34. XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema What FAIR Profiles do
  • 35. XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema FAIR Profile of DCAT Schema FAIR Profile of UniProt Metadata Schema FAIR Profile of DragDB Metadata Schema What FAIR Profiles do
  • 36. XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema FAIR Profile DCAT Schema FAIR Profile UniProt Metadata Schema FAIR Profile DragDB Metadata Schema Though they are potentially describing very different things (from Web FORM fields to OWL Ontologies!) all FAIR Profiles are written using the same vocabulary and structure, defined by...
  • 37. XML Data Record XMLS Data Schema DCAT RDF Metadata Record RDF Data Record RDFS Data Schema UniProt RDF Metadata Record ACEDB Data Record ACEDB Data Schema DragonDB Form Metadata Record DCAT RDFS Schema UniProt RDFS MetadataSchema DragonDB Form Metadata Schema FAIR Profile DCAT Schema FAIR Profile UniProt Metadata Schema FAIR Profile DragDB Metadata Schema
  • 39. Repo. Data Record (e.g. XML, RDF) Repo. Data Schema (e.g. XMLS, RDFS) Repository Metadata Record Repository Metadata Schema Defines Describes Defines Defines ~~Describes** Repository’s FAIR Profile FAIR Profile Schema
  • 40. Repo. Data Record (e.g. XML, RDF) Repo. Data Schema (e.g. XMLS, RDFS) Repository Metadata Record Repository Metadata Schema Defines Defines ~~Describes** Repository’s FAIR Profile FAIR Profile Schema
  • 41. FAIR Profile Schema A very small OWL Vocabulary for writing meta-meta- descriptors FAIR Profile Metadata FAIR Class dc: provenance hasProperty owl:Class (URI or de novo definition) rdf:Property owl:ObjectProperty or owl:DatatypeProperty describes property minCount xsd:anyURI xsd:integer xsd:integer maxCount allowedValues FAIR Property describes class rdf:langString skos:preferredLabel skos:preferredLabel rdf:langString http://datafairport.org/schema/FAIR-schema.owl
  • 42. FAIR Profile Schema A very small OWL Vocabulary for writing meta-meta- descriptors http://datafairport.org/schema/FAIR-schema.owl FAIR Profile Metadata FAIR Class dc: provenance hasProperty owl:Class (URI or de novo definition) rdf:Property owl:ObjectProperty or owl:DatatypeProperty describes property minCount xsd:anyURI xsd:integer xsd:integer maxCount allowedValues FAIR Property describes class rdf:langString skos:preferredLabel skos:preferredLabel rdf:langString
  • 44. URI must resolve to a SKOS Concept Scheme Describes the constraints on the possible values for a predicate in the target- Repository’s metadata Schema xsd:anyURI allowedValues
  • 45. URI must resolve to a SKOS Concept Scheme Describes the constraints on the possible values for a predicate in the target- Repository’s metadata Schema NOTE: we cannot use rdfs:range because we are meta-modelling a schema! The predicate is a CLASS at the meta-model level, so use of rdfs:range is not appropriate. xsd:anyURI allowedValues
  • 46. A FAIR Profile (an RDF document that follows the FAIR Profile Schema) This Metadata Record Metadata Schema Fair Profile Fair Profile Schema
  • 47. A FAIR Profile (an RDF document that follows the FAIR Profile Schema) This Metadata Record Metadata Schema Fair Profile Fair Profile Schema (as an aside, This is a document that, we believe, is an implementation of the ISO11179 standard for metadata descriptors; however we have not formally made the mapping between our concepts and theirs. This will happen soon, and this mapping alone is sufficient to become ISO11179-compliant. As such, the Fair Profile Schema is a schema for creating ISO11179- compliant descriptors…)
  • 48. What a FAIR Profile is: A meta-description of the (meta)data in a repository
  • 49. What a FAIR Profile is: A meta-description of the (meta)data in a repository What a FAIR Profile is NOT: THE meta-description of the (meta)data in a repository
  • 50. What a FAIR Profile is: A meta-description of the (meta)data in a repository if you were to view it from a particular “perspective” (also known as a “lens*” over the data) * Scientific Lenses to Support Multiple Views over Linked Chemistry Data; DOI:10.1007/978-3-319-11964-9_7
  • 51. What a FAIR Profile is: A meta-description of the (meta)data in a repository if you were to view it from a particular “perspective” (also known as a “lens*” over the data) this is where the FAIRport approach becomes distinctly powerful!
  • 52. What a FAIR Profile is: A meta-description of the (meta)data in a repository if you were to view it from a particular “perspective” (also known as a “lens*” over the data) but first, look at the other FAIRport components
  • 53. Skunkworks Task #2 - [A]cessible Are there already access layer definitions?
  • 54. remind myself to say that many of these components are standalone you don’t have to implement everything, all at once.
  • 55. A set of behaviors for providing a unified (albeit simplistic!) access layer for “records” contained in any Web resource Skunkworks Task #2 - [A]cessible Are there already access layer definitions?
  • 56. LDP sits at a URL waiting
  • 57. GET Client calls HTTP GET on the URL (that’s all!)
  • 58. ?? LDP communicates with the repository (how? entirely up to you!)
  • 59. Repository returns data “about available records” (how? entirely up to you!) ??
  • 60. LDP returns you an RDF representation of the list of records’ URLs <RDF> URL1 URL2 URL3 URL4 URL5 URL6 … … ... </RDF>
  • 61. GET URL6 The URLs (should) point back to the LDP server
  • 62. ?? LDP communicates with the repository about that record ??
  • 63. LDP returns you DCAT Distributions for all available formats of that record that the repo provides <RDF> <dcat:Dist.> <format xml> URL6a <dcat:Dist.> <format html> URL6b </RDF>
  • 64. You directly call the repository using the URL of your choice GET URL6a
  • 65. Repository returns you the data you requested Content-type: application/xml <data> <data> Yummy Data Here! </data> </data> …. (Note: most repositories already do this part! So we’re half-way there :-) )
  • 66. The first time I wrote one of these from scratch, it was about 170 lines of code, and took less than 4 hours (including reading the W3C documentation!)
  • 67. The first time I wrote one of these from scratch, it was about 170 lines of code, and took less than 4 hours (including reading the W3C documentation!) These may exist completely independently of any other FAIRport component as a way of fulfilling the “A” (Accessible) aspect of the FAIR Data Principles https://www.force11.org/group/fairgroup/fairprinciples
  • 68. The first time I wrote one of these from scratch, it was about 170 lines of code, and took less than 4 hours (including reading the W3C documentation!) However, when one of these is associated with a FAIR Profile we call it a “FAIR Accessor”
  • 69. The first time I wrote one of these from scratch, it was about 170 lines of code, and took less than 4 hours (including reading the W3C documentation!) **** As of July 8, 2015, there are now support libraries (in Perl) for this part of the implementation: https://goo.gl/NB13Fz (the location of this code will change soon, sorry!)
  • 70. Live Demo…. http://biordf.org/cgi-bin/RD_Connect/EHDN_Accessor DISCLAIMER: This demonstration was written during an RD Connect workshop, and the demonstration references various aspects of the RD Connect project (including having ‘RD_Connect’ in the URL). HOWEVER, I am not affiliated with RD Connect, I do not speak for RD Connect in any way, and RD Connect does not endorse any of these ideas, products, behaviours, or anything else presented in this talk. In addition, the data and metadata presented here is all completely fake, and this public demo raises no privacy concerns. The demo is presented using the Tabulator extension to Chrome, in order to nicely format the RDF for human readability.
  • 71.
  • 72. These elements are defined by the LDP Specification
  • 73.
  • 74. A SKOS Concept Scheme describing the “nature” of the data in the repository
  • 75. Optional - the link to the meta-descriptors of each record in the repository (paginated using HTTP headers defined by LDP)
  • 77. The Record’s Meta-descriptor Metadata about the record (which metadata is completely at the discretion of the data owner!)
  • 78. The Record’s Meta-descriptor Ontological information about the type of record… click through to:
  • 80. The Record’s Meta-descriptor There are 3 DCAT Distributions for this record
  • 81. The Record’s Meta-descriptor Each distribution has its own format and download URL (distributions are completely optional, and up to the provider) This would also be the place to put license, accessibility, or authentication metadata!
  • 82. This provides an API-free way of accessing any record in any dataset Every step is just HTTP GET with standard metadata following the DCAT ontology Incremental drill-down from repository-level all the way to an individual record Useful metadata at all levels Access is 100% under provider-control at all levels
  • 83. This is NOT intended to be “efficient”!! However, the alternative is to invent a query API, and then force all repositories to implement it… Not Gonna Happen! This is lightweight, and easy to implement Trade power for (hopefully) wider adoption...
  • 84. package EHDN_Accessor; # this should be the same as your filename! use strict; use warnings; use JSON; use base 'FAIR::Accessor'; my $config = { title => 'European Huntington Disease Network Data Accessor', serviceTextualDescription => 'Server for some ERDN Data', textualAccessibilityInfo => "The information from this server requries no authentication", # this could also be a $URI describing the accessibiltiy mechanizedAccessibilityInfo => "", # this must be a URI to an RDF document textualLicenseInfo => "CC-BY", # this could also be a URI to the license info mechanizedLicenseInfo => "", # this must be a URI to an RDF document baseURI => "", # I don't know what this is used for yet, but I have a feeling I will need it! ETAG_Base => "EHDN_Accessor_For_RegInfo", localNamespaces => {ehdn => 'http://ehdn.org/some/items/', ehdnpred => 'http://ehdn.org/some/predicates/'}, localMetadataElements => [qw(erdnpred:fromHospital erdnpred:lastevaluatedDate) ], }; my $service = EHDN_Accessor->new(%$config); $service->handle_requests; sub get_all_meta_URIs { my ($starting_at_record, $path_info) = @_; $path_info ||=""; my %result = ( 'dc:title' => "EHDN Accessor Server", 'dcat:description' => "the prototype Accessor server for EHDN", 'dcat:identifier' => "handle:12345566798", 'dcat:keyword' => ["medical records", "rare diseases", "EHDN", "Linked Data Platform", 'HTT', 'huntington'], 'dcat:landingPage' => 'http://www.euro-hd.net/html/network', 'dcat:language' => 'en', 'dcat:publisher' => 'http://www.euro-hd.net', 'dcat:temporal' => 'http://reference.data.gov.uk/id/quarter/2006-Q1', 'dcat:theme' => 'http://biordf.org/DataFairPort/ConceptSchemes/Huntingtons.rdf', 'daml:has-Technical-Lead' => "Summer Student Joe", 'daml:has-Administrative-Contact' => "John Doe", 'daml:has-Program-Manager' => "Jane Doe", 'daml:has-Principle-Investigator' => "Big Doctor", ); my $BASE_URL = "http://" . $ENV{'SERVER_NAME'} . $ENV{'REQUEST_URI'} . $path_info; my @known_records = ($BASE_URL . "/479-467-29X", $BASE_URL . "/768-599-467", ); $result{'void:entities'} = scalar(@known_records); # THE TOTAL *NUMBER* OF RECORDS THAT CAN BE SERVED $result{'ldp:contains'} = @known_records; # the listref of record ids return encode_json(%result); } sub get_distribution_URIs { my ($self, $ID, $PATH_INFO) = @_; my (%response, %formats, %metadata); $formats{'text/html'} = 'http://myserver.org/ThisScript/record/479-467-29X.html'; $formats{'application/rdf+xml'} = 'http://myserver.org/ThisScript/record/479-467-29X.rdf'; $metadata{'rdf:type'} = ['edam:data_0006', 'sio:SIO_000088']; extractDataFromSpreadsheet(%metadata, $ID); $response{distributions} = %formats; $response{metadata} = %metadata if (keys %metadata); # only set it if you can provided something my $response = encode_json(%response); return $response; } sub extractDataFromSpreadsheet{ my ($metadata, $ID) = @_; use Spreadsheet::XLSX::Reader::LibXML; my $db_file = "registry3-enrolment.xlsx.xlsx"; my $excel = Spreadsheet::XLSX::Reader::LibXML->new(); my $workbook = $excel->parse($db_file); my ($sheet) = $workbook->worksheets; my ($first, $last) = $sheet->row_range; foreach my $row ($first .. $last) { next unless ($sheet->get_cell($row, 0)->value eq $ID); my $cell = $sheet->get_cell($row, 5); $metadata->{'dcat:updateDate'} = $cell->value; $cell = $sheet->get_cell($row, 1); $metadata->{'dcat:releaseDate'} = $cell->value; $cell = $sheet->get_cell($row, 3); This is the only code that a provider must implement… and much (almost half!) of it is just tag/value definitions If they don’t want to implement the full set of drill-down behaviors then the code is even smaller! (This is the actual code - 68 lines - running the demo you just saw. Most of the heavy-lifting is handled by the libraries I published yesterday)
  • 85. Skunkworks Task #3 - [I]nteroperable This is “the holy grail”!!
  • 86. Skunkworks Task #3 - [I]nteroperable This is “the holy grail”!! This is where the FAIR Profile reveals its utility “what it IS” vs. “what it IS NOT”
  • 87. What a FAIR Profile is: A meta-description of the (meta)data in a repository if you were to view it from a particular “perspective” (also known as a “lens” over the data)
  • 88. Skunkworks Task #3 - [I]nteroperable “FAIR Projectors” A FAIR Projector is a (potentially) small, modular, reusable Web based service that “projects” data from a repository into the format described by a FAIR Profile
  • 89. Skunkworks Task #3 - [I]nteroperable “FAIR Projectors” A FAIR Projector is a (potentially) small, modular, reusable Web based service that “projects” data from a repository into the format described by a FAIR Profile http://linkeddatafragments.org/
  • 90. RESTful access to RDF data resources RESTful hypermedia controls (e.g. pagination) defined by Hydra W3C Community Group http://www.hydra-cg.com/
  • 94. implementedBy 2 Options for a projector: Direct Access to Repository
  • 95. implementedBy 2 Options for a projector: OR access via a FAIR Accessor
  • 97. Stage 1: Kinds of questions we can ask ● How do I access the records in Repo X? → HTTP GET (Accessor URL) ● How do I access the records in Repo X in XML? → HTTP GET (Accessor URL) → HTTP GET (DCAT Dist URL) ● Can I please have the “biological tissue” field in Repository X as FMA Ontology terms? → Search FAIRport Registry → Find matching FAIR Profile + Projector → HTTP GET (Projector URL)
  • 98. FAIR Projector: The first time I wrote one of these from scratch, it was about 300 lines of Perl code, and took about 6 hours (including reading the LDF documentation!) and it projected three different FAIR Profiles The next thing on my TODO list is to write libraries to make this easier; however, this is a much trickier thing to do!
  • 99. Live Demo of a FAIR Projector This demo is done over my own database: http://antirrhinum.net it will project the “Allele” slice of that database into three different forms, using 3 different profiles. The demo uses a FAIR Accessor (as described in the previous demo)
  • 100. <?xml version="1.0" standalone="yes"?> <Allele class="Allele" value="cho"> <Source> <gene class="Locus" value="CHO" /> </Source> <Location class="Laboratory" value="Schwarz-Sommer" /> <Description> <Phenotype class="#Text" value="Habit:" /> <Phenotype class="#Text" value="Leaves: Thin and narrow starting from the 6th leaf. Buckled and warped along the axis of the leaf." /> <Phenotype class="#Text" value="Seedlings:" /> <Phenotype class="#Text" value="Cotyledons: no obvious change" /> <Phenotype class="#Text" value="Hypocotyl:" /> <Phenotype class="#Text" value="Inflorescence:" /> <Phenotype class="#Text" value="Flowers: Conspicuous sepal to petal transformations, particularly in 165E genetic background. Petals unfused. Carpel sometimes unfused and stunted." /> <Phenotype class="#Text" value="_____________" /> <Phenotype class="#Text" value="Upper lip:" /> <Phenotype class="#Text" value="Lower lip:" /> <Phenotype class="#Text" value="Bumps:" /> <Phenotype class="#Text" value="Seed: reduced germimation of mutant seed." /> <Phenotype class="#Text" value="Roots: root growth retarded; roots sometimes absent." /> <Phenotype class="#Text" value="Remarks: F2 74:25, though usually mutants are under-represented in F2 populations." /> <Phenotype class="#Text" value="Remarks: Identical phenotype to Des (Despenteado)" /> <Recessive /> </Description> <Phenotype_picture class="Phenotype_Picture" value="cho~a" /> <Phenotype_picture class="Phenotype_Picture" value="cho~b" /> <Phenotype_picture class="Phenotype_Picture" value="cho-0" /> <Phenotype_picture class="Phenotype_Picture" value="cho-1" /> <Phenotype_picture class="Phenotype_Picture" value="zss_pict0027" /> <Phenotype_picture class="Phenotype_Picture" value="zss_pict0028" /> <Phenotype_picture class="Phenotype_Picture" value="zss_pict0029" /> <Expression_pattern_of class="Locus" value="FIM"> <Description class="#Text" value="FIM extends to first whorl" /> <Pick_me_to_call class="#txt" value="FIM_in_cho"> <Pick_me_to_call-2 class="#txt" value="FIM_in_cho.jpg" /> </Pick_me_to_call> <Photo_by class="Author" value="Wilkinson MD" /> </Expression_pattern_of> <Expression_pattern_of class="Locus" value="GLO"> <Description class="#Text" value="GLO expression in first whorl organs that ectopically express FIM" /> <Pick_me_to_call class="#txt" value="GLO_in_cho"> <Pick_me_to_call-2 class="#txt" value="GLO_in_cho.jpg" /> </Pick_me_to_call> <Photo_by class="Author" value="Wilkinson MD" /> </Expression_pattern_of> <Multi_mutant class="Multi_mutant" value="cho_fim-679" /> <Multi_mutant class="Multi_mutant" value="cho_fim-1" /> <Multi_mutant class="Multi_mutant" value="cho_fis" /> <Multi_mutant class="Multi_mutant" value="cho_def-gli" /> <Multi_mutant class="Multi_mutant" value="cho_inco" /> <Multi_mutant class="Multi_mutant" value="cho_glo-1" /> <Multi_mutant class="Multi_mutant" value="cho_glo-3D" /> </Allele> The raw data, from the repository
  • 101. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:FAI="http://datafairport.org/schemas/FAIR-schema.owl#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:s="http://www.w3.org/2000/01/rdf-schema#"> <FAI:FAIRClass rdf:about=""> <FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/0c0c0c3c-5ce1-4df6-98d3-4c22a75748ea"/> <FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/94037d0d-3d8e-4fc4-bd24-dafb85520089"/> <FAI:onClassType rdf:resource="http://purl.obolibrary.org/obo/SO_0001023"/> <dcterms:provenance rdf:resource="#Profile"/> <s:label>FAIR Class of Allele</s:label> </FAI:FAIRClass> <FAI:FAIRProfile rdf:about="#Profile"> <FAI:hasClass rdf:resource=""/> <dcterms:description>FAIR Profile Allele record properties, using textual descriptions and links to Gene Records</dcterms:description> <dcterms:identifier>doi:Mark.Dragon.P1</dcterms:identifier> <dcterms:license>Anyone may use this freely</dcterms:license> <dcterms:organization>wilkinsonlab.info</dcterms:organization> <dcterms:title>FAIR Profile of Descriptive Allele records</dcterms:title> <rdf:type rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/> <s:label>FAIR Profile Allele</s:label> </FAI:FAIRProfile> <FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/0c0c0c3c-5ce1-4df6-98d3-4c22a75748ea"> <FAI:allowedValues rdf:resource="../ConceptSchemes/xsdstring"/> <FAI:onPropertyType rdf:resource="http://purl.org/dc/terms/description"/> <s:label>description</s:label> </FAI:FAIRProperty> <FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/94037d0d-3d8e-4fc4-bd24-dafb85520089"> <FAI:allowedValues rdf:resource="../ConceptSchemes/SequenceOntologyGene704"/> <FAI:maxCount>1</FAI:maxCount> <FAI:minCount>1</FAI:minCount> <FAI:onPropertyType rdf:resource="http://purl.obolibrary.org/obo/so_variant_of"/> <s:label>variant of</s:label> </FAI:FAIRProperty> </rdf:RDF> FAIR Profile #1 - “Descriptive”
  • 102. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:FAI="http://datafairport.org/schemas/FAIR-schema.owl#" xmlns:dc="http://purl.org/dc/terms/" xmlns:s="http://www.w3.org/2000/01/rdf-schema#"> <FAI:FAIRClass rdf:about=""> <FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/6e35cbde-3e6a-430d-be22- e87507c71827"/> <FAI:onClassType rdf:resource="http://purl.obolibrary.org/obo/SO_0001023"/> <dc:provenance rdf:resource="#Profile"/> <s:label>FAIR Class of Allele</s:label> </FAI:FAIRClass> <FAI:FAIRProfile rdf:about="#Profile"> <FAI:hasClass rdf:resource=""/> <dc:description>FAIR Profile the Image portion of an Allele record using SIO:Image classification</dc:description> <dc:identifier>doi:Mark.Dragon.P2</dc:identifier> <dc:license>Anyone may use this freely</dc:license> <dc:organization>wilkinsonlab.info</dc:organization> <dc:title>FAIR Profile the Image portion of an Allele record</dc:title> <rdf:type rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/> <s:label>FAIR Profile of Allele Images(SIO)</s:label> </FAI:FAIRProfile> <FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/6e35cbde-3e6a-430d-be22-e87507c71827"> <FAI:allowedValues rdf:resource="../ConceptSchemes/SIOOntologyImage81"/> <FAI:onPropertyType rdf:resource="http://semanticscience.org/ontology/SIO_000205"/> <s:label>is represented by</s:label> </FAI:FAIRProperty> </rdf:RDF> FAIR Profile #2 - “Image using SIO ontology”
  • 103. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:FAI="http://datafairport.org/schemas/FAIR-schema.owl#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:s="http://www.w3.org/2000/01/rdf-schema#"> <FAI:FAIRClass rdf:about=""> <FAI:hasProperty rdf:resource="http://datafairport.org/sampledata/profileschemaproperty/4fbb6c39-1bbe-49bf-af36- c966c3e233a1"/> <FAI:onClassType rdf:resource="http://purl.obolibrary.org/obo/SO_0001023"/> <dcterms:provenance rdf:resource="#Profile"/> <s:label>FAIR Class of Allele</s:label> </FAI:FAIRClass> <FAI:FAIRProfile rdf:about="#Profile"> <FAI:hasClass rdf:resource=""/> <dcterms:description>FAIR Profile the Image portion of an Allele record using EDAM:Image classification</dcterms:description> <dcterms:identifier>doi:Mark.Dragon.P3</dcterms:identifier> <dcterms:license>Anyone may use this freely</dcterms:license> <dcterms:organization>wilkinsonlab.info</dcterms:organization> <dcterms:title>FAIR Profile the Image portion of an Allele record</dcterms:title> <rdf:type rdf:resource="http://purl.org/dc/terms/ProvenanceStatement"/> <s:label>FAIR Profile Allele Images (EDAM)</s:label> </FAI:FAIRProfile> <FAI:FAIRProperty rdf:about="http://datafairport.org/sampledata/profileschemaproperty/4fbb6c39-1bbe-49bf-af36-c966c3e233a1"> <FAI:allowedValues rdf:resource="../ConceptSchemes/EDAMOntologyImage2968"/> <FAI:onPropertyType rdf:resource="http://semanticscience.org/ontology/SIO_000205"/> <s:label>is represented by</s:label> </FAI:FAIRProperty> </rdf:RDF> FAIR Profile #3 - “Image using EDAM ontology”
  • 104. FAIR Accessor Step 1 (http://antirrhinum.net/cgi-bin/LDP/Alleles)
  • 105. FAIR Accessor Step 2 (click on “cho” in the list of alleles) The Projector takes the application/xml distribution and projects it...
  • 106. XML of the Allele records projected using the “descriptive” FAIR Profile http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileAlleleDescriptions/
  • 107. XML of the Allele records (SAME XML!) projected using the “SIO Image” FAIR Profile http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO/ http://semanticscience.org/resource/SIO_000081
  • 108. XML of the Allele records (SAME XML!) projected using the “EDAM Image” FAIR Profile http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO/ http://edamontology.org/data_2968
  • 109. XML of the Allele records (SAME XML!) projected using the “EDAM Image” FAIR Profile http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO/ Pagination controls from the Hydra ontology...
  • 110. This was a very “lightweight” demo, but it showed the point Same data, different lenses (FAIR Profiles) In the case of this demo, all three Projections used the same FAIR Accessor It is obviously more efficient to reach-into the database directly and skip the Accessor altogether. Yes! However, the point of this demo was to show the “worst case scenario” where you need to FAIR Project something that you have absolutely no control over
  • 111. Stage 2: Leverage the Modularity implementedBy
  • 112. Stage 2: Leverage the Modularity implementedByimplementedBy
  • 113. Stage 2: Leverage the Modularity implementedByimplementedBy Repository X Repository Y
  • 114. Stage 2: Leverage the Modularity implementedByimplementedBy
  • 115. Stage 2: Leverage the Modularity implementedByimplementedBy Merged data to be cross-queried
  • 116.
  • 117. Main features of FAIR Profiles ● Do not require repository participation - anyone can write a Profile. Most of the time it should be possible to write an accessor too, even by screen- scraping! ● Provides a end-user-purpose-driven, potentially non-comprehensive “view” on a repository ● FAIR Profiles of any given repository facet may be different! May use different vocabularies or may interpret fields differently, depending on the needs of the Profile author ● FAIR profiles can/should be indexed and shared (e.g. in a FAIRport Registry), to facilitate cross-repository interoperability and integration ● There is no (obvious) reason why a FAIR profile could not be used to describe the DATA in the repository, not just the metadata… o my Antirrhinum Allele example does exactly that! ● FAIR Profiles can be used both at the “read” and at the “write” end of data publishing… (Force 11 Oxford meeting demo was for “write” interfaces)
  • 118. Main features of FAIRPort Platform ● GET GET GET!! We didn’t invent any new technology or API :-) :-) ● All components modular, re-usable, and often will be written by 3rd parties o → encourages the creation of an ecosystem of these lightweight, discoverable little data transformers ● All components identified by URL, and can be “cobbled together” in whatever way a client needs on a particular day (and this can happen automatically!) ● Because everything is identified by a URL, and we only use HTTP GET, components can be “chained” (e.g. the Projector calls GET on the URL of another Projector) → i.e. I don’t care how the Projector or Accessor work “under the hood”, it’s all the same GET to me!
  • 119. Skunkworks Participants ● Mark Wilkinson ● Michel Dumontier ● Barend Mons ● Tim Clark ● Jun Zhao ● Paolo Ciccarese ● Paul Groth ● Erik van Mulligen ● Luiz Olavo Bonino da Silva Santos ● Matthew Gamble ● Carole Goble ● JoĂŤl Kuiper ● Morris Swertz ● Erik Schultes ● Erik Schultes ● Mercè Crosas ● Adrian Garcia ● Philip Durbin ● Jeffrey Grethe ● Katy Wolstencroft ● Sudeshna Das ● M. Emily Merrill
  • 120. Working Examples - One (small) dataset (the Allele slice of my own DragonDB): http://antirrhinum.net An example record in the Repository's native format is here: http://antirrhinum.net/cgi-bin/ace/generic/xml/DragonDB?name=cho;class=Allele - Three different FAIR Profiles that could be applied to Allele records (from ANY repository) - one with textual descriptions and gene cross- references, the other two with phenotypic images described using the SIO ontology, or the EDAM ontology (respectively). This is the "F" in FAIR, since these can (in principle) be searched and queried in order to find various representations of your data of interest. Profiles are associated - in a many-to-many relationship - with specific repositories via “Projectors” (see below). A Repository may project into many different Profiles, and many Repositories may project their data into the same Profile. * http://biordf.org/DataFairPort/ProfileSchemas/Allele_Profile_Descriptive.rdf * http://biordf.org/DataFairPort/ProfileSchemas/Allele_Profile_EDAM.rdf * http://biordf.org/DataFairPort/ProfileSchemas/Allele_ProfileSIO.rdf - a "FAIR Accessor" that provides a Linked Data Platform-compliant way to retrieve all of the URIs for the Allele records, as well as their various representations (described as DCAT Distributions). This is the "A" in FAIR. http://antirrhinum.net/cgi-bin/LDP/Alleles - a "FAIR Projector" that takes the data from the Allele records and "projects" it as RDF that is compliant with whichever Profile you chose. This is the 'I" in FAIR. http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler If you call HTTP GET on that URL, it will report to you what FAIR Profiles it is capable of projecting, using which FAIR Accessor (if any) In this example, all three Projections use an Accesor, and use the same Accessor in each case. This is the ‘worst case scenario’, as it represents the slowest, most roundabout way to access a Repository’s records - it would generally only be used if the Repository provides no externally-facing API of its own! (that’s why the demo runs so slowly…) I did the demo this way so that everyone could see every component “working together”. Three “Projections” of the DragonDB Allele Data (note that most of the process above is achieved simply by called GET on the URLs below!!) http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileAlleleDescriptions http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesSIO http://biordf.org/cgi-bin/DataFairPort/DragonDB_LDF_Profiler/DragonDB_Allele_ProfileImagesEDAM
  • 121. This presentation is licensed CC-BY Mark Wilkinson (markw@illuminae.com) https://goo.gl/YEdwwB @markmoby