SlideShare une entreprise Scribd logo
1  sur  34
Annotopia Architecture by Paolo Ciccarese 
Paolo Ciccarese, PhD 
Assistant Professor of Neurology at Harvard Medical School 
Co-chair of the W3C Open Annotation Community Group 
Architect of the Annotopia Open Annotation Server 
ANNOTOPIA 
UNIVERSAL ANNOTATION HUB 
Overview (Draft 11 – 2014-11-19) 
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To 
view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
Annotopia Architecture by Paolo Ciccarese 
What is it Annotopia? 
• It is a Universal Annotation Hub 
• It provides you with back-end technology so 
that you can focus on the user interface and 
the knowledge creation process 
• It consists of a collections of modules that 
provide useful services for creating, persisting, 
searching, sharing and enriching annotation 
• It is Open Annotation* compliant 
*Open Annotation Data Model (http://www.openannotation.org/spec/core/)
Annotopia Architecture by Paolo Ciccarese 
Imagine annotating… 
• Documents (HTML and PDF) with multiple tools 
(Domeo, Utopia, annotator.js) 
• (Bibliographic) records with bibliographic 
management platforms 
• (Biological) Entities in databases and knowledge 
bases 
• Hi-res imaging (Brain imaging) and 3D models 
(proteins, brain anatomy…) 
• Data in various shapes and domains (genomic 
data, clinical data…)
Annotopia Architecture by Paolo Ciccarese 
Annotopia: De-Siloing Annotation 
Custom Annotators 
Annotopia 
Instance 1 
Applications 
Text Mining 
Aggregated 
querying and 
browsing 
Mashups 
APIs 
APIs 
Annotopia 
Instance 2 
JSON-LD 
JSON-LD
Annotopia Architecture by Paolo Ciccarese 
Current Architecture (see github*) 
Spring security supporting OpenIDs and OAuth 
Admin Dashboard 
Annotopia 
Storage APIs Data Cruncher 
Agents/Users/Groups 
Smart 
Storage 
Virtuoso Triple Store 
MySQL Relational DBMS 
Connectors 
Text Mining 
Terms Search 
Entity Recognition 
Vocabulary search 
Linked Data Mashups 
Bibliographic 
Metadata Manager 
Ext 1 
Ext 2 
Ext n 
… 
https://github.com/Annotopia
Annotopia Architecture by Paolo Ciccarese 
Connectors (Annotation services) 
• They are extension points, new connectors 
can be added for integrating new resources 
• Provide one or more of the following features 
– Terms search 
– Text mining 
– Vocabulary listing 
• They normalize all the content so that clients 
get always the same format, no matter what 
service they asked for
Annotopia Architecture by Paolo Ciccarese 
Connectors (2) 
• They are dynamically loaded by Annotopia 
• They can be access to a façade that provides 
for an API 
• They can be ran standalone without having to 
run the full Annotopia infrastructure 
• They normalize the text mining results to the 
Open Annotation Model
Annotopia Architecture by Paolo Ciccarese 
Implemented Connectors 
• BioPortal: allows for term searching, 
vocabulary listing and text mining through the 
NCBO Annotator 
– https://github.com/Annotopia/CnBioPortalConnector 
• NIF: allows for term searching and text mining 
through the NIF Annotator 
– https://github.com/Annotopia/CnNifConnector
Annotopia Architecture by Paolo Ciccarese 
Connectors in progress 
• EBI (European Bioinformatics Institute) 
• DBpedia
Annotopia Architecture by Paolo Ciccarese 
Current Architecture (see github*) 
Annotopia 
Spring security supporting OpenIDs and OAuth 
Admin Dashboard 
Storage APIs Data Cruncher 
* https://github.com/Annotopia 
Connectors 
NCBO Annotator 
NIF Annotator 
NCBO Terms Search 
NIF Resources Search 
…. 
Agents/Users/Groups 
Smart 
Storage 
Virtuoso Triple Store 
MySQL Relational DBMS 
Bibliographic 
Metadata Manager 
Ext 1 
Ext 2 
Ext n 
…
Annotopia Architecture by Paolo Ciccarese 
Annotopia: Smart Storage 
• It is the module in charge of persisting 
annotation 
• It uses Virtuoso triple store through a Jena API 
• Uses JSON-LD as serialization method 
https://github.com/Annotopia/AtSmartStorage/
Annotopia Architecture by Paolo Ciccarese 
Currently Available APIs 
• Open Annotation: for storing/retrieving Open 
Annotation content 
• Open Annotation Sets: for storing/retrieving 
Open Annotation content organized in 
annotation sets 
• Open Annotation Validation: provides services 
for validating Open Annotation content 
• Reporting: provides some basic counters of 
the storage status
Annotopia Architecture by Paolo Ciccarese 
Annotopia Storage APIs 
openAnnotationSet openAnnotation 
openAnnotationSetStorage 
openAnnotationVirtuoso 
jenaVirtuosoStore 
Virtuoso Triple Store 
openAnnotationStorage 
jena 
APIs 
Services 
openAnnotationValidation 
Elastic Search
Annotopia Architecture by Paolo Ciccarese 
Open Annotation API
Annotopia Architecture by Paolo Ciccarese 
Posting Open Annotation Content 
• The Open Annotation API is a RESTful API that 
supports GET, POST, PUT and DELETE 
• Payload is represented in JSON-LD, which 
through appropriate context/framing can be 
stored/retrieved from the triple store 
• POST, PUT and DELETE now support a single 
item at a time
Annotopia Architecture by Paolo Ciccarese 
Open Annotation API: POST (1) 
• Creates a new Annotation. 
Param Description Default 
apiKey The application assigned apikey. The API calls are available 
only for registered and authorized applications. 
POST list of parameters 
REQUIRED 
item The Annotation content REQUIRED 
outCmd It determines the kind of JSON-LD post processing. Possible 
values are 'none', 'context', 'frame'. In the case of the POST 
the framing is applied to the response which will send the 
updated annotation back to the client. 
none 
incGph If true, this will include the metadata (provenance and 
more) of the graph that is wrapping the Annotation 
false 
validate If 'ON' the software will go through the appropriate 
validation algorithm before being stored 
OFF
Annotopia Architecture by Paolo Ciccarese 
Open Annotation API: POST (2) 
• The Current JSON-LD specification do not 
support framing for Named Graphs. Therefore 
the option ”outCmd":”frame” cannot be used 
when: 
– The annotation consists of multiple graphs 
– The option ”incGph":”true” as the metadata graph 
will be returned, as a separate Named Graph, 
together with the annotation. This result in a 
result of at least two graphs.
Annotopia Architecture by Paolo Ciccarese 
An example of POST (with OAuth) 
curl -i -X POST http://serverip:port/s/annotation  
-H "Content-Type: application/json"  
-H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" 
-d'{"apiKey":"testkey”, ”outCmd":”frame", "item":{ OA CONTENT/PAYLOAD }} 
• The content or payload is formatted according to the Open 
Annotation model (Eds. Sanderson, Ciccarese, Van de Sompel; 
03 Feb 2013): http://www.openannotation.org/spec/core/
Annotopia Architecture by Paolo Ciccarese 
Ex of Open Annotation content - POST 
{ 
"apiKey": "testkey", ”outCmd":”frame”, 
"item": { 
"@context": "https://raw2.github.com/Annotopia/AtSmartStorage/master/web-app/data/OAContext.json", 
"@id": "urn:temp:001", 
"@type": "http://www.w3.org/ns/oa#Annotation", 
"motivatedBy": "oa:commenting", 
"annotatedBy": { 
"@id": "http://orcid.org/0000-0002-5156-2703", 
"@type": "foaf:Person", 
"foaf:name": "Paolo Ciccarese" 
}, 
"annotatedAt": "2014-02-17T09:46:11EST", 
"serializedBy": "urn:application:domeo", 
"serializedAt": "2014-02-17T09:46:51EST", 
"hasBody": { 
"@type": [ 
"cnt:ContentAsText", 
"dctypes:Text" 
], 
"cnt:chars": "What does this mean for...", 
"dc:format": "text/plain" 
}, 
"hasTarget": { 
"@id": "urn:temp:2", 
"@type": "oa:SpecificResource", 
"hasSelector": { 
"@type": "oa:TextQuoteSelector", 
"exact": "a sequence of progressive...", 
"prefix": "The data suggest that ", 
"suffix": "" 
}, 
"hasSource": { 
"@id": "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", 
"@type": "dctypes:Text" 
} 
} 
} 
} 
body 
target
Annotopia Architecture by Paolo Ciccarese 
Smart Storage behavior 
• Smart storage performs some basic checks on the 
payload 
• It mints stable URIs for the components of the 
payload (Annotation, Body, Target) 
• It stores each Open Annotation in a Named Graph 
and it also generates additional metadata that 
are stored in a separate global Provenance Graph 
• It returns the payload with the above updates 
and a short summary wrapper
Annotopia Architecture by Paolo Ciccarese 
Open Annotation POST response (a) 
{"status":"saved", "result": {"duration": "89ms","graphs":"1","item":[{ 
"@graph" : [ { 
"@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", 
"@type" : "oa:Annotation", 
"http://purl.org/pav/previousVersion" : "urn:temp:001", 
"annotatedAt" : "2014-02-17T09:46:11EST", 
"annotatedBy" : { 
"@id" : "http://orcid.org/0000-0002-5156-2703", 
"@type" : "foaf:Person", 
"name" : "Paolo Ciccarese" 
}, 
"hasBody" : { 
"@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", 
"@type" : [ "dctypes:Text", "cnt:ContentAsText" ], 
"format" : "text/plain", 
"http://purl.org/pav/previousVersion" : "blank", 
"chars" : "What does this mean for..." 
}, 
"hasTarget" : { 
"@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", 
"@type" : "oa:SpecificResource", 
"http://purl.org/pav/previousVersion" : "urn:temp:8", 
"hasSelector" : { 
"@id" : "_:b0", 
"@type" : "oa:TextQuoteSelector", 
"exact" : "a sequence of progressive...", 
"prefix" : "The data suggest that ", 
"suffix" : "" 
}, 
"hasSource" : { 
"@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", 
"@type" : "dctypes:Text" 
} 
}, 
"motivatedBy" : "oa:commenting", 
"serializedAt" : "2014-02-17T09:46:51EST", 
"serializedBy" : "urn:application:domeo" 
} ] 
}]}} 
Summary 
body 
target
Annotopia Architecture by Paolo Ciccarese 
Open Annotation POST response (b) 
{"status":"saved", "result": {"duration": "89ms","graphs":"1","item":[{ 
"@graph" : [ { 
"@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", 
"@type" : "oa:Annotation", 
"http://purl.org/pav/previousVersion" : "urn:temp:001", 
"annotatedAt" : "2014-02-17T09:46:11EST", 
"annotatedBy" : { 
"@id" : "http://orcid.org/0000-0002-5156-2703", 
"@type" : "foaf:Person", 
"name" : "Paolo Ciccarese" 
}, 
"hasBody" : { 
"@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", 
"@type" : [ "dctypes:Text", "cnt:ContentAsText" ], 
"format" : "text/plain", 
"http://purl.org/pav/previousVersion" : "blank", 
"chars" : "What does this mean for..." 
}, 
"hasTarget" : { 
"@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", 
"@type" : "oa:SpecificResource", 
"http://purl.org/pav/previousVersion" : "urn:temp:8", 
"hasSelector" : { 
"@id" : "_:b0", 
"@type" : "oa:TextQuoteSelector", 
"exact" : "a sequence of progressive...", 
"prefix" : "The data suggest that ", 
"suffix" : "" 
}, 
"hasSource" : { 
"@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", 
"@type" : "dctypes:Text" 
} 
}, 
"motivatedBy" : "oa:commenting", 
"serializedAt" : "2014-02-17T09:46:51EST", 
"serializedBy" : "urn:application:domeo" 
} ] 
}]}} 
Minted URIs 
old URI 
Minted URIs 
Minted URIs 
old URI
Annotopia Architecture by Paolo Ciccarese 
Open Annotation API: PUT (1) 
• Updates an existing Annotation. 
Param Description Default 
apiKey The application assigned apikey. The API calls are available 
only for registered and authorized applications. 
PUT list of parameters 
REQUIRED 
item The Annotation content REQUIRED 
outCmd It determines the kind of JSON-LD post processing. Possible 
values are 'none', 'context', 'frame'. In the case of the POST 
the framing is applied to the response which will send the 
updated annotation back to the client. 
none 
incGph If true, this will include the metadata (provenance and 
more) of the graph that is wrapping the Annotation 
false 
validate If 'ON' the software will go through the appropriate 
validation algorithm before being stored 
OFF
Annotopia Architecture by Paolo Ciccarese 
An example of PUT (with OAuth) 
curl -i -X PUT http://serverip:port/s/annotation  
-H "Content-Type: application/json"  
-H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" 
-d'{"apiKey":"testkey”, ”outCmd":”frame", "item":{ CONTENT/PAYLOAD }} 
• The content or payload is formatted according to the Open 
Annotation model (Eds. Sanderson, Ciccarese, Van de Sompel; 
03 Feb 2013): http://www.openannotation.org/spec/core/
Annotopia Architecture by Paolo Ciccarese 
Ex of Open Annotation content - PUT 
{ 
"apiKey": "testkey", ”outCmd":”frame”, 
"item": { 
"@context": "https://raw2.github.com/Annotopia/AtSmartStorage/master/web-app/data/OAContext.json", 
"@id" : "http://localhost:8090/s/annotation/830ED7EE-BF7B-4A18-8AE1-A9AF96AC135B", 
"@type" : "oa:Annotation", 
"http://purl.org/pav/previousVersion" : "urn:temp:001", 
"annotatedAt" : "2014-02-17T09:46:11EST", 
"annotatedBy" : { 
"@id" : "http://orcid.org/0000-0002-5156-2703", 
"@type" : "foaf:Person", 
"name" : "Paolo Ciccarese" 
}, 
"hasBody" : { 
"@id" : "http://localhost:8090/s/content/79317F9E-57FC-4938-AF52-C66962371451", 
"@type" : [ "dctypes:Text", "cnt:ContentAsText" ], 
"format" : "text/plain", 
"http://purl.org/pav/previousVersion" : "blank", 
"chars" : ”New updated body" 
}, 
"hasTarget" : { 
"@id" : "http://localhost:8090/s/resource/73AC02CA-B719-478E-B6A3-EE8D18D57ED2", 
"@type" : "oa:SpecificResource", 
"http://purl.org/pav/previousVersion" : "urn:temp:2", 
"hasSelector" : { 
"@id" : "_:b0", 
"@type" : "oa:TextQuoteSelector", 
"exact" : "a sequence of progressive...", 
"prefix" : "The data suggest that ", 
"suffix" : "" 
}, 
"hasSource" : { 
"@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", 
"@type" : "dctypes:Text" 
} 
}, 
"motivatedBy" : "oa:commenting", 
"serializedAt" : "2014-02-17T09:46:51EST", 
"serializedBy" : "urn:application:domeo" 
}} 
body 
target
Annotopia Architecture by Paolo Ciccarese 
Open Annotation POST response (a) 
{"status":"saved", "result": {"duration": "89ms","graphs":"1","item":[{ 
"@graph" : [ { 
"@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", 
"@type" : "oa:Annotation", 
"http://purl.org/pav/previousVersion" : "urn:temp:001", 
"annotatedAt" : "2014-02-17T09:46:11EST", 
"annotatedBy" : { 
"@id" : "http://orcid.org/0000-0002-5156-2703", 
"@type" : "foaf:Person", 
"name" : "Paolo Ciccarese" 
}, 
"hasBody" : { 
"@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", 
"@type" : [ "dctypes:Text", "cnt:ContentAsText" ], 
"format" : "text/plain", 
"http://purl.org/pav/previousVersion" : "blank", 
"chars" : "What does this mean for..." 
}, 
"hasTarget" : { 
"@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", 
"@type" : "oa:SpecificResource", 
"http://purl.org/pav/previousVersion" : "urn:temp:8", 
"hasSelector" : { 
"@id" : "_:b0", 
"@type" : "oa:TextQuoteSelector", 
"exact" : "a sequence of progressive...", 
"prefix" : "The data suggest that ", 
"suffix" : "" 
}, 
"hasSource" : { 
"@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", 
"@type" : "dctypes:Text" 
} 
}, 
"motivatedBy" : "oa:commenting", 
"serializedAt" : "2014-02-17T09:46:51EST", 
"serializedBy" : "urn:application:domeo" 
} ] 
}]}} 
Summary 
body 
target
Annotopia Architecture by Paolo Ciccarese 
Param Description Default 
apiKey The application assigned apikey. The API calls are available 
only for registered and authorized applications. 
REQUIRED 
max The number of records to display per page 10 
offset The page to be returned 0 
tgtUrl If specified, this will limit the results to the Annotations 
that are targeting the specified URL 
none 
tgtFgt If true, this will include in the results the Annotations that 
are targeting a fragment of the specified URL 
true 
outCmd It determines the kind of JSON-LD post processing. Possible 
values are 'none', 'context', 'frame'. 
none 
incGph If true, this will include the metadata (provenance and 
more) of the graph that is wrapping the Annotation 
false 
Open Annotation API: GET (1) 
• Get existing Annotation(s). GET list of parameters
Annotopia Architecture by Paolo Ciccarese 
Some examples of GET (with OAuth) 
curl -i -X GET http://localhost:8080/s/annotation/  
-H "Content-Type: application/json"  
-H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" 
--data '{"apiKey":"testkey", “max”:”5”,”offset”:”0”,”outCmd":”frame"}'  
curl -i -X GET http://localhost:8080/s/annotation/  
-H "Content-Type: application/json"  
-H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" 
--data '{"apiKey":"testkey", “max”:”5”,”offset”:”0”,”outCmd":”frame”,”tgtUrl”:” 
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759”}'
Annotopia Architecture by Paolo Ciccarese 
Ex of Open Annotation content - GET 
{ 
{"status":"results", "result": {"total":”1", "pages":"0", "duration": ”46ms", "offset": "0", "max": ”5", "items":[{ 
"@graph" : [ { 
"@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", 
"@type" : "oa:Annotation", 
"http://purl.org/pav/previousVersion" : "urn:temp:001", 
"annotatedAt" : "2014-02-17T09:46:11EST", 
"annotatedBy" : { 
"@id" : "http://orcid.org/0000-0002-5156-2703", 
"@type" : "foaf:Person", 
"name" : "Paolo Ciccarese" 
}, 
"hasBody" : { 
"@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", 
"@type" : [ "dctypes:Text", "cnt:ContentAsText" ], 
"format" : "text/plain", 
"http://purl.org/pav/previousVersion" : "blank", 
"chars" : "What does this mean for..." 
}, 
"hasTarget" : { 
"@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", 
"@type" : "oa:SpecificResource", 
"http://purl.org/pav/previousVersion" : "urn:temp:8", 
"hasSelector" : { 
"@id" : "_:b0", 
"@type" : "oa:TextQuoteSelector", 
"exact" : "a sequence of progressive...", 
"prefix" : "The data suggest that ", 
"suffix" : "" 
}, 
"hasSource" : { 
"@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", 
"@type" : "dctypes:Text" 
} 
}, 
"motivatedBy" : "oa:commenting", 
"serializedAt" : "2014-02-17T09:46:51EST", 
"serializedBy" : "urn:application:domeo" 
} ] 
}]}} 
Summary 
body 
target
Annotopia Architecture by Paolo Ciccarese 
Annotation Sets API
Annotopia Architecture by Paolo Ciccarese 
Annotation Sets 
• They are not part of the current specification 
• They allow to manage one or more Open 
Annotations as a bundle 
• Annotation Sets are used for instance by the 
Domeo Annotation Tool* 
• The current draft of Open Annotation in EPUB 
is including the notion of set** 
*http://annotationframework.org 
** http://www.idpf.org/epub/oa/
Annotopia Architecture by Paolo Ciccarese 
Annotation Sets API: POST (1) 
• Creates a new set of Annotations. 
Param Description Default 
apiKey The application assigned apikey. The API calls are available 
only for registered and authorized applications. 
POST list of parameters 
REQUIRED 
set The set of Annotation items REQUIRED 
outCmd It determines the kind of JSON-LD post processing. Possible 
values are 'none', 'context', 'frame'. In the case of the POST 
the framing is applied to the response which will send the 
updated annotation back to the client. 
none 
incGph If true, this will include the metadata (provenance and 
more) of the graph that is wrapping the Annotation 
false 
validate If 'ON' the software will go through the appropriate 
validation algorithm before being stored 
OFF
Annotopia Architecture by Paolo Ciccarese 
In progress…
Annotopia Architecture by Paolo Ciccarese 
Annotation Faceted Search

Contenu connexe

Tendances

Mtsr2015 goble-keynote
Mtsr2015 goble-keynoteMtsr2015 goble-keynote
Mtsr2015 goble-keynoteCarole Goble
 
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...Carole Goble
 
Reproducibility, Research Objects and Reality, Leiden 2016
Reproducibility, Research Objects and Reality, Leiden 2016Reproducibility, Research Objects and Reality, Leiden 2016
Reproducibility, Research Objects and Reality, Leiden 2016Carole Goble
 
Research Shared: researchobject.org
Research Shared: researchobject.orgResearch Shared: researchobject.org
Research Shared: researchobject.orgNorman Morrison
 
Capturing the context: one small(ish step for modellers, one giant leap for m...
Capturing the context: one small(ish step for modellers, one giant leap for m...Capturing the context: one small(ish step for modellers, one giant leap for m...
Capturing the context: one small(ish step for modellers, one giant leap for m...FAIRDOM
 
Open Annotation, Specifiers and Specific Resources tutorial
Open Annotation, Specifiers and Specific Resources tutorialOpen Annotation, Specifiers and Specific Resources tutorial
Open Annotation, Specifiers and Specific Resources tutorialPaolo Ciccarese
 
FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...
FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...
FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...Carole Goble
 
The FAIRDOM Commons for Systems Biology
The FAIRDOM Commons for Systems BiologyThe FAIRDOM Commons for Systems Biology
The FAIRDOM Commons for Systems BiologyFAIRDOM
 
Better Software, Better Research
Better Software, Better ResearchBetter Software, Better Research
Better Software, Better ResearchCarole Goble
 
FAIR Data, Operations and Model management for Systems Biology and Systems Me...
FAIR Data, Operations and Model management for Systems Biology and Systems Me...FAIR Data, Operations and Model management for Systems Biology and Systems Me...
FAIR Data, Operations and Model management for Systems Biology and Systems Me...Carole Goble
 
Research Objects, SEEK and FAIRDOM
Research Objects, SEEK and FAIRDOMResearch Objects, SEEK and FAIRDOM
Research Objects, SEEK and FAIRDOMCarole Goble
 
Reproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects helpReproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects helpCarole Goble
 
Being FAIR: FAIR data and model management SSBSS 2017 Summer School
Being FAIR:  FAIR data and model management SSBSS 2017 Summer SchoolBeing FAIR:  FAIR data and model management SSBSS 2017 Summer School
Being FAIR: FAIR data and model management SSBSS 2017 Summer SchoolCarole Goble
 
What is Reproducibility? The R* brouhaha (and how Research Objects can help)
What is Reproducibility? The R* brouhaha (and how Research Objects can help)What is Reproducibility? The R* brouhaha (and how Research Objects can help)
What is Reproducibility? The R* brouhaha (and how Research Objects can help)Carole Goble
 
Making your data good enough for sharing.
Making your data good enough for sharing.Making your data good enough for sharing.
Making your data good enough for sharing.FAIRDOM
 
Open Annotation Core Data Model (tutorial)
Open Annotation Core Data Model (tutorial)Open Annotation Core Data Model (tutorial)
Open Annotation Core Data Model (tutorial)Robert Sanderson
 
Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...
Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...
Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...LEARN Project
 
The Rhetoric of Research Objects
The Rhetoric of Research ObjectsThe Rhetoric of Research Objects
The Rhetoric of Research ObjectsCarole Goble
 
Being Reproducible: SSBSS Summer School 2017
Being Reproducible: SSBSS Summer School 2017Being Reproducible: SSBSS Summer School 2017
Being Reproducible: SSBSS Summer School 2017Carole Goble
 
Reproducible and citable data and models: an introduction.
Reproducible and citable data and models: an introduction.Reproducible and citable data and models: an introduction.
Reproducible and citable data and models: an introduction.FAIRDOM
 

Tendances (20)

Mtsr2015 goble-keynote
Mtsr2015 goble-keynoteMtsr2015 goble-keynote
Mtsr2015 goble-keynote
 
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
FAIR Software (and Data) Citation: Europe, Research Object Systems, Networks ...
 
Reproducibility, Research Objects and Reality, Leiden 2016
Reproducibility, Research Objects and Reality, Leiden 2016Reproducibility, Research Objects and Reality, Leiden 2016
Reproducibility, Research Objects and Reality, Leiden 2016
 
Research Shared: researchobject.org
Research Shared: researchobject.orgResearch Shared: researchobject.org
Research Shared: researchobject.org
 
Capturing the context: one small(ish step for modellers, one giant leap for m...
Capturing the context: one small(ish step for modellers, one giant leap for m...Capturing the context: one small(ish step for modellers, one giant leap for m...
Capturing the context: one small(ish step for modellers, one giant leap for m...
 
Open Annotation, Specifiers and Specific Resources tutorial
Open Annotation, Specifiers and Specific Resources tutorialOpen Annotation, Specifiers and Specific Resources tutorial
Open Annotation, Specifiers and Specific Resources tutorial
 
FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...
FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...
FAIRDOM - FAIR Asset management and sharing experiences in Systems and Synthe...
 
The FAIRDOM Commons for Systems Biology
The FAIRDOM Commons for Systems BiologyThe FAIRDOM Commons for Systems Biology
The FAIRDOM Commons for Systems Biology
 
Better Software, Better Research
Better Software, Better ResearchBetter Software, Better Research
Better Software, Better Research
 
FAIR Data, Operations and Model management for Systems Biology and Systems Me...
FAIR Data, Operations and Model management for Systems Biology and Systems Me...FAIR Data, Operations and Model management for Systems Biology and Systems Me...
FAIR Data, Operations and Model management for Systems Biology and Systems Me...
 
Research Objects, SEEK and FAIRDOM
Research Objects, SEEK and FAIRDOMResearch Objects, SEEK and FAIRDOM
Research Objects, SEEK and FAIRDOM
 
Reproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects helpReproducible Research: how could Research Objects help
Reproducible Research: how could Research Objects help
 
Being FAIR: FAIR data and model management SSBSS 2017 Summer School
Being FAIR:  FAIR data and model management SSBSS 2017 Summer SchoolBeing FAIR:  FAIR data and model management SSBSS 2017 Summer School
Being FAIR: FAIR data and model management SSBSS 2017 Summer School
 
What is Reproducibility? The R* brouhaha (and how Research Objects can help)
What is Reproducibility? The R* brouhaha (and how Research Objects can help)What is Reproducibility? The R* brouhaha (and how Research Objects can help)
What is Reproducibility? The R* brouhaha (and how Research Objects can help)
 
Making your data good enough for sharing.
Making your data good enough for sharing.Making your data good enough for sharing.
Making your data good enough for sharing.
 
Open Annotation Core Data Model (tutorial)
Open Annotation Core Data Model (tutorial)Open Annotation Core Data Model (tutorial)
Open Annotation Core Data Model (tutorial)
 
Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...
Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...
Enabling Precise Identification and Citability of Dynamic Data: Recommendatio...
 
The Rhetoric of Research Objects
The Rhetoric of Research ObjectsThe Rhetoric of Research Objects
The Rhetoric of Research Objects
 
Being Reproducible: SSBSS Summer School 2017
Being Reproducible: SSBSS Summer School 2017Being Reproducible: SSBSS Summer School 2017
Being Reproducible: SSBSS Summer School 2017
 
Reproducible and citable data and models: an introduction.
Reproducible and citable data and models: an introduction.Reproducible and citable data and models: an introduction.
Reproducible and citable data and models: an introduction.
 

En vedette

ODI Summit 2016 - Linked Open Data at Springer Nature
ODI Summit 2016 - Linked Open Data at Springer NatureODI Summit 2016 - Linked Open Data at Springer Nature
ODI Summit 2016 - Linked Open Data at Springer NatureMichele Pasin
 
GFII - Financial Times - Semantic Publishing
GFII - Financial Times - Semantic PublishingGFII - Financial Times - Semantic Publishing
GFII - Financial Times - Semantic PublishingJem Rayfield
 
Who the frick are you
Who the frick are youWho the frick are you
Who the frick are yougmaidekamido
 
The Design of Data
The Design of DataThe Design of Data
The Design of DataIan White
 
Assistive Technology Web Quest
Assistive Technology Web QuestAssistive Technology Web Quest
Assistive Technology Web Questguestc3e244c
 
Electrical characteristics
Electrical characteristicsElectrical characteristics
Electrical characteristicsdijahapple
 
Departmental Seminar: Innovation
Departmental Seminar: InnovationDepartmental Seminar: Innovation
Departmental Seminar: InnovationIan White
 
Big Data Usage Survey
Big Data Usage SurveyBig Data Usage Survey
Big Data Usage SurveyAnil Chopra
 
How Open Is Open?
How Open Is Open?How Open Is Open?
How Open Is Open?Ian White
 
Next Generation Traffic: Is Your Network Ready?
Next Generation Traffic: Is Your Network Ready?Next Generation Traffic: Is Your Network Ready?
Next Generation Traffic: Is Your Network Ready?Anil Chopra
 
An Integrated Solution for Runtime Compliance Governance in SOA
An Integrated Solution for Runtime Compliance Governance in SOAAn Integrated Solution for Runtime Compliance Governance in SOA
An Integrated Solution for Runtime Compliance Governance in SOAAliaksandr Birukou
 
Work In Progress
Work In ProgressWork In Progress
Work In Progresssamluk
 

En vedette (20)

EPUB 3.1の制定と 国際規格化
EPUB 3.1の制定と国際規格化EPUB 3.1の制定と国際規格化
EPUB 3.1の制定と 国際規格化
 
ODI Summit 2016 - Linked Open Data at Springer Nature
ODI Summit 2016 - Linked Open Data at Springer NatureODI Summit 2016 - Linked Open Data at Springer Nature
ODI Summit 2016 - Linked Open Data at Springer Nature
 
GFII - Financial Times - Semantic Publishing
GFII - Financial Times - Semantic PublishingGFII - Financial Times - Semantic Publishing
GFII - Financial Times - Semantic Publishing
 
Day 2
Day 2Day 2
Day 2
 
Who the frick are you
Who the frick are youWho the frick are you
Who the frick are you
 
The Design of Data
The Design of DataThe Design of Data
The Design of Data
 
Assistive Technology Web Quest
Assistive Technology Web QuestAssistive Technology Web Quest
Assistive Technology Web Quest
 
Chapter 2 3
Chapter 2 3Chapter 2 3
Chapter 2 3
 
Electrical characteristics
Electrical characteristicsElectrical characteristics
Electrical characteristics
 
Departmental Seminar: Innovation
Departmental Seminar: InnovationDepartmental Seminar: Innovation
Departmental Seminar: Innovation
 
Overview
OverviewOverview
Overview
 
Big Data Usage Survey
Big Data Usage SurveyBig Data Usage Survey
Big Data Usage Survey
 
Networking for Toastmasters
Networking for ToastmastersNetworking for Toastmasters
Networking for Toastmasters
 
How Open Is Open?
How Open Is Open?How Open Is Open?
How Open Is Open?
 
Thesartor
ThesartorThesartor
Thesartor
 
Next Generation Traffic: Is Your Network Ready?
Next Generation Traffic: Is Your Network Ready?Next Generation Traffic: Is Your Network Ready?
Next Generation Traffic: Is Your Network Ready?
 
An Integrated Solution for Runtime Compliance Governance in SOA
An Integrated Solution for Runtime Compliance Governance in SOAAn Integrated Solution for Runtime Compliance Governance in SOA
An Integrated Solution for Runtime Compliance Governance in SOA
 
College 1 6
College 1 6College 1 6
College 1 6
 
Chapter 2 5
Chapter 2 5Chapter 2 5
Chapter 2 5
 
Work In Progress
Work In ProgressWork In Progress
Work In Progress
 

Similaire à ANNOTOPIA ARCHITECTURE" Annotopia: A Universal Annotation Hub Architecture

Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...Rahul Krishna Upadhyaya
 
2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets
2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets
2021 Dask Summit - Using STAC to catalog SpatioTemporal datasetsRob Emanuele
 
Kubernetes meetup bangalore december 2017 - v02
Kubernetes meetup bangalore   december 2017 - v02Kubernetes meetup bangalore   december 2017 - v02
Kubernetes meetup bangalore december 2017 - v02Kumar Gaurav
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaMax Alexejev
 
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloReal-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloJoe Stein
 
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit
 
OpenStack Documentation Projects and Processes
OpenStack Documentation Projects and ProcessesOpenStack Documentation Projects and Processes
OpenStack Documentation Projects and ProcessesAnne Gentle
 
Introduction Apache Kafka
Introduction Apache KafkaIntroduction Apache Kafka
Introduction Apache KafkaJoe Stein
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearchErhwen Kuo
 
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraReal-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraJoe Stein
 
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Timothy Spann
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Vinay Kumar
 
Kubernetes meetup 101
Kubernetes meetup 101Kubernetes meetup 101
Kubernetes meetup 101Jakir Patel
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...Shaun Murakami
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...DataStax Academy
 
OpenNaaS Overview Complete
OpenNaaS Overview CompleteOpenNaaS Overview Complete
OpenNaaS Overview CompleteJoan Garcia
 
Scorex, the Modular Blockchain Framework
Scorex, the Modular Blockchain FrameworkScorex, the Modular Blockchain Framework
Scorex, the Modular Blockchain FrameworkAlex Chepurnoy
 
OpenStack APIs: Present and Future (Beta Talk)
OpenStack APIs: Present and Future (Beta Talk)OpenStack APIs: Present and Future (Beta Talk)
OpenStack APIs: Present and Future (Beta Talk)Wade Minter
 

Similaire à ANNOTOPIA ARCHITECTURE" Annotopia: A Universal Annotation Hub Architecture (20)

Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 
2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets
2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets
2021 Dask Summit - Using STAC to catalog SpatioTemporal datasets
 
Kubernetes meetup bangalore december 2017 - v02
Kubernetes meetup bangalore   december 2017 - v02Kubernetes meetup bangalore   december 2017 - v02
Kubernetes meetup bangalore december 2017 - v02
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache AccumuloReal-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
Real-Time Distributed and Reactive Systems with Apache Kafka and Apache Accumulo
 
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
Accumulo Summit 2015: Real-Time Distributed and Reactive Systems with Apache ...
 
OpenStack Documentation Projects and Processes
OpenStack Documentation Projects and ProcessesOpenStack Documentation Projects and Processes
OpenStack Documentation Projects and Processes
 
Issuetrak API
Issuetrak API Issuetrak API
Issuetrak API
 
Introduction Apache Kafka
Introduction Apache KafkaIntroduction Apache Kafka
Introduction Apache Kafka
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and CassandraReal-Time Log Analysis with Apache Mesos, Kafka and Cassandra
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
 
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17
 
Kubernetes meetup 101
Kubernetes meetup 101Kubernetes meetup 101
Kubernetes meetup 101
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...
 
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
 
OpenNaaS Overview Complete
OpenNaaS Overview CompleteOpenNaaS Overview Complete
OpenNaaS Overview Complete
 
Introduction to FIWARE IoT
Introduction to FIWARE IoTIntroduction to FIWARE IoT
Introduction to FIWARE IoT
 
Scorex, the Modular Blockchain Framework
Scorex, the Modular Blockchain FrameworkScorex, the Modular Blockchain Framework
Scorex, the Modular Blockchain Framework
 
OpenStack APIs: Present and Future (Beta Talk)
OpenStack APIs: Present and Future (Beta Talk)OpenStack APIs: Present and Future (Beta Talk)
OpenStack APIs: Present and Future (Beta Talk)
 

Plus de Paolo Ciccarese

Domeo, Text Mining, UIMA and Clerezza
Domeo, Text Mining, UIMA and ClerezzaDomeo, Text Mining, UIMA and Clerezza
Domeo, Text Mining, UIMA and ClerezzaPaolo Ciccarese
 
SWAN, HyQue and Nanopublications
SWAN, HyQue and NanopublicationsSWAN, HyQue and Nanopublications
SWAN, HyQue and NanopublicationsPaolo Ciccarese
 
Swan Annotation Tool - Text Mining
Swan Annotation Tool - Text MiningSwan Annotation Tool - Text Mining
Swan Annotation Tool - Text MiningPaolo Ciccarese
 
Annotation Ontology (AO)
Annotation Ontology (AO)Annotation Ontology (AO)
Annotation Ontology (AO)Paolo Ciccarese
 
Semantics is not a luxury
Semantics is not a luxurySemantics is not a luxury
Semantics is not a luxuryPaolo Ciccarese
 
PRO Use Cases for Scientific Communities
PRO Use Cases for Scientific CommunitiesPRO Use Cases for Scientific Communities
PRO Use Cases for Scientific CommunitiesPaolo Ciccarese
 

Plus de Paolo Ciccarese (6)

Domeo, Text Mining, UIMA and Clerezza
Domeo, Text Mining, UIMA and ClerezzaDomeo, Text Mining, UIMA and Clerezza
Domeo, Text Mining, UIMA and Clerezza
 
SWAN, HyQue and Nanopublications
SWAN, HyQue and NanopublicationsSWAN, HyQue and Nanopublications
SWAN, HyQue and Nanopublications
 
Swan Annotation Tool - Text Mining
Swan Annotation Tool - Text MiningSwan Annotation Tool - Text Mining
Swan Annotation Tool - Text Mining
 
Annotation Ontology (AO)
Annotation Ontology (AO)Annotation Ontology (AO)
Annotation Ontology (AO)
 
Semantics is not a luxury
Semantics is not a luxurySemantics is not a luxury
Semantics is not a luxury
 
PRO Use Cases for Scientific Communities
PRO Use Cases for Scientific CommunitiesPRO Use Cases for Scientific Communities
PRO Use Cases for Scientific Communities
 

Dernier

Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
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
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
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
 
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 ☁
 
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
 
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
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
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
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 

Dernier (20)

Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
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🔝
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
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
 
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
 
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
 
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
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
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
 
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
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 

ANNOTOPIA ARCHITECTURE" Annotopia: A Universal Annotation Hub Architecture

  • 1. Annotopia Architecture by Paolo Ciccarese Paolo Ciccarese, PhD Assistant Professor of Neurology at Harvard Medical School Co-chair of the W3C Open Annotation Community Group Architect of the Annotopia Open Annotation Server ANNOTOPIA UNIVERSAL ANNOTATION HUB Overview (Draft 11 – 2014-11-19) This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
  • 2. Annotopia Architecture by Paolo Ciccarese What is it Annotopia? • It is a Universal Annotation Hub • It provides you with back-end technology so that you can focus on the user interface and the knowledge creation process • It consists of a collections of modules that provide useful services for creating, persisting, searching, sharing and enriching annotation • It is Open Annotation* compliant *Open Annotation Data Model (http://www.openannotation.org/spec/core/)
  • 3. Annotopia Architecture by Paolo Ciccarese Imagine annotating… • Documents (HTML and PDF) with multiple tools (Domeo, Utopia, annotator.js) • (Bibliographic) records with bibliographic management platforms • (Biological) Entities in databases and knowledge bases • Hi-res imaging (Brain imaging) and 3D models (proteins, brain anatomy…) • Data in various shapes and domains (genomic data, clinical data…)
  • 4. Annotopia Architecture by Paolo Ciccarese Annotopia: De-Siloing Annotation Custom Annotators Annotopia Instance 1 Applications Text Mining Aggregated querying and browsing Mashups APIs APIs Annotopia Instance 2 JSON-LD JSON-LD
  • 5. Annotopia Architecture by Paolo Ciccarese Current Architecture (see github*) Spring security supporting OpenIDs and OAuth Admin Dashboard Annotopia Storage APIs Data Cruncher Agents/Users/Groups Smart Storage Virtuoso Triple Store MySQL Relational DBMS Connectors Text Mining Terms Search Entity Recognition Vocabulary search Linked Data Mashups Bibliographic Metadata Manager Ext 1 Ext 2 Ext n … https://github.com/Annotopia
  • 6. Annotopia Architecture by Paolo Ciccarese Connectors (Annotation services) • They are extension points, new connectors can be added for integrating new resources • Provide one or more of the following features – Terms search – Text mining – Vocabulary listing • They normalize all the content so that clients get always the same format, no matter what service they asked for
  • 7. Annotopia Architecture by Paolo Ciccarese Connectors (2) • They are dynamically loaded by Annotopia • They can be access to a façade that provides for an API • They can be ran standalone without having to run the full Annotopia infrastructure • They normalize the text mining results to the Open Annotation Model
  • 8. Annotopia Architecture by Paolo Ciccarese Implemented Connectors • BioPortal: allows for term searching, vocabulary listing and text mining through the NCBO Annotator – https://github.com/Annotopia/CnBioPortalConnector • NIF: allows for term searching and text mining through the NIF Annotator – https://github.com/Annotopia/CnNifConnector
  • 9. Annotopia Architecture by Paolo Ciccarese Connectors in progress • EBI (European Bioinformatics Institute) • DBpedia
  • 10. Annotopia Architecture by Paolo Ciccarese Current Architecture (see github*) Annotopia Spring security supporting OpenIDs and OAuth Admin Dashboard Storage APIs Data Cruncher * https://github.com/Annotopia Connectors NCBO Annotator NIF Annotator NCBO Terms Search NIF Resources Search …. Agents/Users/Groups Smart Storage Virtuoso Triple Store MySQL Relational DBMS Bibliographic Metadata Manager Ext 1 Ext 2 Ext n …
  • 11. Annotopia Architecture by Paolo Ciccarese Annotopia: Smart Storage • It is the module in charge of persisting annotation • It uses Virtuoso triple store through a Jena API • Uses JSON-LD as serialization method https://github.com/Annotopia/AtSmartStorage/
  • 12. Annotopia Architecture by Paolo Ciccarese Currently Available APIs • Open Annotation: for storing/retrieving Open Annotation content • Open Annotation Sets: for storing/retrieving Open Annotation content organized in annotation sets • Open Annotation Validation: provides services for validating Open Annotation content • Reporting: provides some basic counters of the storage status
  • 13. Annotopia Architecture by Paolo Ciccarese Annotopia Storage APIs openAnnotationSet openAnnotation openAnnotationSetStorage openAnnotationVirtuoso jenaVirtuosoStore Virtuoso Triple Store openAnnotationStorage jena APIs Services openAnnotationValidation Elastic Search
  • 14. Annotopia Architecture by Paolo Ciccarese Open Annotation API
  • 15. Annotopia Architecture by Paolo Ciccarese Posting Open Annotation Content • The Open Annotation API is a RESTful API that supports GET, POST, PUT and DELETE • Payload is represented in JSON-LD, which through appropriate context/framing can be stored/retrieved from the triple store • POST, PUT and DELETE now support a single item at a time
  • 16. Annotopia Architecture by Paolo Ciccarese Open Annotation API: POST (1) • Creates a new Annotation. Param Description Default apiKey The application assigned apikey. The API calls are available only for registered and authorized applications. POST list of parameters REQUIRED item The Annotation content REQUIRED outCmd It determines the kind of JSON-LD post processing. Possible values are 'none', 'context', 'frame'. In the case of the POST the framing is applied to the response which will send the updated annotation back to the client. none incGph If true, this will include the metadata (provenance and more) of the graph that is wrapping the Annotation false validate If 'ON' the software will go through the appropriate validation algorithm before being stored OFF
  • 17. Annotopia Architecture by Paolo Ciccarese Open Annotation API: POST (2) • The Current JSON-LD specification do not support framing for Named Graphs. Therefore the option ”outCmd":”frame” cannot be used when: – The annotation consists of multiple graphs – The option ”incGph":”true” as the metadata graph will be returned, as a separate Named Graph, together with the annotation. This result in a result of at least two graphs.
  • 18. Annotopia Architecture by Paolo Ciccarese An example of POST (with OAuth) curl -i -X POST http://serverip:port/s/annotation -H "Content-Type: application/json" -H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" -d'{"apiKey":"testkey”, ”outCmd":”frame", "item":{ OA CONTENT/PAYLOAD }} • The content or payload is formatted according to the Open Annotation model (Eds. Sanderson, Ciccarese, Van de Sompel; 03 Feb 2013): http://www.openannotation.org/spec/core/
  • 19. Annotopia Architecture by Paolo Ciccarese Ex of Open Annotation content - POST { "apiKey": "testkey", ”outCmd":”frame”, "item": { "@context": "https://raw2.github.com/Annotopia/AtSmartStorage/master/web-app/data/OAContext.json", "@id": "urn:temp:001", "@type": "http://www.w3.org/ns/oa#Annotation", "motivatedBy": "oa:commenting", "annotatedBy": { "@id": "http://orcid.org/0000-0002-5156-2703", "@type": "foaf:Person", "foaf:name": "Paolo Ciccarese" }, "annotatedAt": "2014-02-17T09:46:11EST", "serializedBy": "urn:application:domeo", "serializedAt": "2014-02-17T09:46:51EST", "hasBody": { "@type": [ "cnt:ContentAsText", "dctypes:Text" ], "cnt:chars": "What does this mean for...", "dc:format": "text/plain" }, "hasTarget": { "@id": "urn:temp:2", "@type": "oa:SpecificResource", "hasSelector": { "@type": "oa:TextQuoteSelector", "exact": "a sequence of progressive...", "prefix": "The data suggest that ", "suffix": "" }, "hasSource": { "@id": "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", "@type": "dctypes:Text" } } } } body target
  • 20. Annotopia Architecture by Paolo Ciccarese Smart Storage behavior • Smart storage performs some basic checks on the payload • It mints stable URIs for the components of the payload (Annotation, Body, Target) • It stores each Open Annotation in a Named Graph and it also generates additional metadata that are stored in a separate global Provenance Graph • It returns the payload with the above updates and a short summary wrapper
  • 21. Annotopia Architecture by Paolo Ciccarese Open Annotation POST response (a) {"status":"saved", "result": {"duration": "89ms","graphs":"1","item":[{ "@graph" : [ { "@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", "@type" : "oa:Annotation", "http://purl.org/pav/previousVersion" : "urn:temp:001", "annotatedAt" : "2014-02-17T09:46:11EST", "annotatedBy" : { "@id" : "http://orcid.org/0000-0002-5156-2703", "@type" : "foaf:Person", "name" : "Paolo Ciccarese" }, "hasBody" : { "@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", "@type" : [ "dctypes:Text", "cnt:ContentAsText" ], "format" : "text/plain", "http://purl.org/pav/previousVersion" : "blank", "chars" : "What does this mean for..." }, "hasTarget" : { "@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", "@type" : "oa:SpecificResource", "http://purl.org/pav/previousVersion" : "urn:temp:8", "hasSelector" : { "@id" : "_:b0", "@type" : "oa:TextQuoteSelector", "exact" : "a sequence of progressive...", "prefix" : "The data suggest that ", "suffix" : "" }, "hasSource" : { "@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", "@type" : "dctypes:Text" } }, "motivatedBy" : "oa:commenting", "serializedAt" : "2014-02-17T09:46:51EST", "serializedBy" : "urn:application:domeo" } ] }]}} Summary body target
  • 22. Annotopia Architecture by Paolo Ciccarese Open Annotation POST response (b) {"status":"saved", "result": {"duration": "89ms","graphs":"1","item":[{ "@graph" : [ { "@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", "@type" : "oa:Annotation", "http://purl.org/pav/previousVersion" : "urn:temp:001", "annotatedAt" : "2014-02-17T09:46:11EST", "annotatedBy" : { "@id" : "http://orcid.org/0000-0002-5156-2703", "@type" : "foaf:Person", "name" : "Paolo Ciccarese" }, "hasBody" : { "@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", "@type" : [ "dctypes:Text", "cnt:ContentAsText" ], "format" : "text/plain", "http://purl.org/pav/previousVersion" : "blank", "chars" : "What does this mean for..." }, "hasTarget" : { "@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", "@type" : "oa:SpecificResource", "http://purl.org/pav/previousVersion" : "urn:temp:8", "hasSelector" : { "@id" : "_:b0", "@type" : "oa:TextQuoteSelector", "exact" : "a sequence of progressive...", "prefix" : "The data suggest that ", "suffix" : "" }, "hasSource" : { "@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", "@type" : "dctypes:Text" } }, "motivatedBy" : "oa:commenting", "serializedAt" : "2014-02-17T09:46:51EST", "serializedBy" : "urn:application:domeo" } ] }]}} Minted URIs old URI Minted URIs Minted URIs old URI
  • 23. Annotopia Architecture by Paolo Ciccarese Open Annotation API: PUT (1) • Updates an existing Annotation. Param Description Default apiKey The application assigned apikey. The API calls are available only for registered and authorized applications. PUT list of parameters REQUIRED item The Annotation content REQUIRED outCmd It determines the kind of JSON-LD post processing. Possible values are 'none', 'context', 'frame'. In the case of the POST the framing is applied to the response which will send the updated annotation back to the client. none incGph If true, this will include the metadata (provenance and more) of the graph that is wrapping the Annotation false validate If 'ON' the software will go through the appropriate validation algorithm before being stored OFF
  • 24. Annotopia Architecture by Paolo Ciccarese An example of PUT (with OAuth) curl -i -X PUT http://serverip:port/s/annotation -H "Content-Type: application/json" -H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" -d'{"apiKey":"testkey”, ”outCmd":”frame", "item":{ CONTENT/PAYLOAD }} • The content or payload is formatted according to the Open Annotation model (Eds. Sanderson, Ciccarese, Van de Sompel; 03 Feb 2013): http://www.openannotation.org/spec/core/
  • 25. Annotopia Architecture by Paolo Ciccarese Ex of Open Annotation content - PUT { "apiKey": "testkey", ”outCmd":”frame”, "item": { "@context": "https://raw2.github.com/Annotopia/AtSmartStorage/master/web-app/data/OAContext.json", "@id" : "http://localhost:8090/s/annotation/830ED7EE-BF7B-4A18-8AE1-A9AF96AC135B", "@type" : "oa:Annotation", "http://purl.org/pav/previousVersion" : "urn:temp:001", "annotatedAt" : "2014-02-17T09:46:11EST", "annotatedBy" : { "@id" : "http://orcid.org/0000-0002-5156-2703", "@type" : "foaf:Person", "name" : "Paolo Ciccarese" }, "hasBody" : { "@id" : "http://localhost:8090/s/content/79317F9E-57FC-4938-AF52-C66962371451", "@type" : [ "dctypes:Text", "cnt:ContentAsText" ], "format" : "text/plain", "http://purl.org/pav/previousVersion" : "blank", "chars" : ”New updated body" }, "hasTarget" : { "@id" : "http://localhost:8090/s/resource/73AC02CA-B719-478E-B6A3-EE8D18D57ED2", "@type" : "oa:SpecificResource", "http://purl.org/pav/previousVersion" : "urn:temp:2", "hasSelector" : { "@id" : "_:b0", "@type" : "oa:TextQuoteSelector", "exact" : "a sequence of progressive...", "prefix" : "The data suggest that ", "suffix" : "" }, "hasSource" : { "@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", "@type" : "dctypes:Text" } }, "motivatedBy" : "oa:commenting", "serializedAt" : "2014-02-17T09:46:51EST", "serializedBy" : "urn:application:domeo" }} body target
  • 26. Annotopia Architecture by Paolo Ciccarese Open Annotation POST response (a) {"status":"saved", "result": {"duration": "89ms","graphs":"1","item":[{ "@graph" : [ { "@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", "@type" : "oa:Annotation", "http://purl.org/pav/previousVersion" : "urn:temp:001", "annotatedAt" : "2014-02-17T09:46:11EST", "annotatedBy" : { "@id" : "http://orcid.org/0000-0002-5156-2703", "@type" : "foaf:Person", "name" : "Paolo Ciccarese" }, "hasBody" : { "@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", "@type" : [ "dctypes:Text", "cnt:ContentAsText" ], "format" : "text/plain", "http://purl.org/pav/previousVersion" : "blank", "chars" : "What does this mean for..." }, "hasTarget" : { "@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", "@type" : "oa:SpecificResource", "http://purl.org/pav/previousVersion" : "urn:temp:8", "hasSelector" : { "@id" : "_:b0", "@type" : "oa:TextQuoteSelector", "exact" : "a sequence of progressive...", "prefix" : "The data suggest that ", "suffix" : "" }, "hasSource" : { "@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", "@type" : "dctypes:Text" } }, "motivatedBy" : "oa:commenting", "serializedAt" : "2014-02-17T09:46:51EST", "serializedBy" : "urn:application:domeo" } ] }]}} Summary body target
  • 27. Annotopia Architecture by Paolo Ciccarese Param Description Default apiKey The application assigned apikey. The API calls are available only for registered and authorized applications. REQUIRED max The number of records to display per page 10 offset The page to be returned 0 tgtUrl If specified, this will limit the results to the Annotations that are targeting the specified URL none tgtFgt If true, this will include in the results the Annotations that are targeting a fragment of the specified URL true outCmd It determines the kind of JSON-LD post processing. Possible values are 'none', 'context', 'frame'. none incGph If true, this will include the metadata (provenance and more) of the graph that is wrapping the Annotation false Open Annotation API: GET (1) • Get existing Annotation(s). GET list of parameters
  • 28. Annotopia Architecture by Paolo Ciccarese Some examples of GET (with OAuth) curl -i -X GET http://localhost:8080/s/annotation/ -H "Content-Type: application/json" -H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" --data '{"apiKey":"testkey", “max”:”5”,”offset”:”0”,”outCmd":”frame"}' curl -i -X GET http://localhost:8080/s/annotation/ -H "Content-Type: application/json" -H "Authorization: Bearer 521b611a-efc6-4487-bb09-f8c8556b2cb0" --data '{"apiKey":"testkey", “max”:”5”,”offset”:”0”,”outCmd":”frame”,”tgtUrl”:” http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759”}'
  • 29. Annotopia Architecture by Paolo Ciccarese Ex of Open Annotation content - GET { {"status":"results", "result": {"total":”1", "pages":"0", "duration": ”46ms", "offset": "0", "max": ”5", "items":[{ "@graph" : [ { "@id" : "http://localhost:8090/s/annotation/C59DBC51-D81E-4B4D-B71B-822BB8FA2C43", "@type" : "oa:Annotation", "http://purl.org/pav/previousVersion" : "urn:temp:001", "annotatedAt" : "2014-02-17T09:46:11EST", "annotatedBy" : { "@id" : "http://orcid.org/0000-0002-5156-2703", "@type" : "foaf:Person", "name" : "Paolo Ciccarese" }, "hasBody" : { "@id" : "http://localhost:8090/s/content/EC3E3D9C-18E9-4820-9A35-5B0E979A8F6E", "@type" : [ "dctypes:Text", "cnt:ContentAsText" ], "format" : "text/plain", "http://purl.org/pav/previousVersion" : "blank", "chars" : "What does this mean for..." }, "hasTarget" : { "@id" : "http://localhost:8090/s/resource/701FDC2F-59AE-4AC1-BF5E-20B57B5146ED", "@type" : "oa:SpecificResource", "http://purl.org/pav/previousVersion" : "urn:temp:8", "hasSelector" : { "@id" : "_:b0", "@type" : "oa:TextQuoteSelector", "exact" : "a sequence of progressive...", "prefix" : "The data suggest that ", "suffix" : "" }, "hasSource" : { "@id" : "http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3292759/", "@type" : "dctypes:Text" } }, "motivatedBy" : "oa:commenting", "serializedAt" : "2014-02-17T09:46:51EST", "serializedBy" : "urn:application:domeo" } ] }]}} Summary body target
  • 30. Annotopia Architecture by Paolo Ciccarese Annotation Sets API
  • 31. Annotopia Architecture by Paolo Ciccarese Annotation Sets • They are not part of the current specification • They allow to manage one or more Open Annotations as a bundle • Annotation Sets are used for instance by the Domeo Annotation Tool* • The current draft of Open Annotation in EPUB is including the notion of set** *http://annotationframework.org ** http://www.idpf.org/epub/oa/
  • 32. Annotopia Architecture by Paolo Ciccarese Annotation Sets API: POST (1) • Creates a new set of Annotations. Param Description Default apiKey The application assigned apikey. The API calls are available only for registered and authorized applications. POST list of parameters REQUIRED set The set of Annotation items REQUIRED outCmd It determines the kind of JSON-LD post processing. Possible values are 'none', 'context', 'frame'. In the case of the POST the framing is applied to the response which will send the updated annotation back to the client. none incGph If true, this will include the metadata (provenance and more) of the graph that is wrapping the Annotation false validate If 'ON' the software will go through the appropriate validation algorithm before being stored OFF
  • 33. Annotopia Architecture by Paolo Ciccarese In progress…
  • 34. Annotopia Architecture by Paolo Ciccarese Annotation Faceted Search