Résolution HTTP
SOAP, WSDL, REST
Linked Data et redirection
LSID Resolution
Données
Métadonnées
Autres (générer des ID)
http://data.examplecollection.org/specimen/12921 http://www.example.org/specimen/10FC9784-B30F-48ED-8DB5-FF65A2A9934E.rdf http://www.example.org/specimen/10FC9784-B30F-48ED-8DB5-FF65A2A9934E ...
XML
Appels "fonctionnels" sur HTTP
WDSL (Web Service Description Language) pour décrire l'interface
Ouvert (protocoles de transport)
Indépendant de la plate-forme
Indépendant du langage
Extensible
Lourd et verbeux
Couplage fort entre le serveur et ses clients
Exemple de fichier WDSL livré avec la sécification LSID
1 <?xml version="1.0"?> 2 3 <definitions xmlns:tns="http://www.omg.org/LSID/2003/Standard/WSDL" 4 targetNamespace="http://www.omg.org/LSID/2003/Standard/WSDL" 5 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 6 xmlns="http://schemas.xmlsoap.org/wsdl/"> 7 8 <message name="getAvailableServicesRequest"> 9 <part name="lsid" type="xsd:anyURI" /> 10 </message> 11 <message name="getAvailableServicesResponse"> 12 <part name="wsdl" type="xsd:base64Binary" /> 13 </message> 14 15 <message name="getDataRequest"> 16 <part name="lsid" type="xsd:anyURI" /> 17 </message> 18 <message name="getDataResponse"> 19 <part name="data-attachment" type="xsd:base64Binary" /> 20 </message> 21 22 <message name="getMetadataRequest"> 23 <part name="lsid" type="xsd:anyURI" /> 24 <part name="acceptedFormats" type="xsd:string" /> 25 </message> 26 <message name="getMetadataResponse"> 27 <part name="format" type="xsd:string" /> 28 <part name="metadata-attachment" type="xsd:base64Binary" /> 29 <part name="expiration" type="xsd:dateTime" /> 30 </message> 31 32 <portType name="LSIDAuthorityServicePortType"> 33 <operation name="getAvailableServices"> 34 <input message="tns:getAvailableServicesRequest" /> 35 <output message="tns:getAvailableServicesResponse" /> 36 </operation> 37 </portType> 38 39 <portType name="LSIDDataServicePortType"> 40 <operation name="getData"> 41 <input message="tns:getDataRequest" /> 42 <output message="tns:getDataResponse" /> 43 </operation> 44 </portType> 45 46 <portType name="LSIDMetadataServicePortType"> 47 <operation name="getMetadata"> 48 <input message="tns:getMetadataRequest" /> 49 <output message="tns:getMetadataResponse" /> 50 </operation> 51 </portType> 52 53 </definitions>
Style d'architecture
L'identification d'une ressource se fait via l'URI
Utilise les methodes HTTP: GET, POST, PUT et DELETE, essentiellement
Sans état
HTML, XML, JSON, ...
Chaque ressource est de-référençable en utilisant les protocoles Internet standard (HTTP)
Chaque ressource pointe vers d'autres ressources autant que possible
URIs et RDF
Redirections HTTP (303) -> Apache mod_rewrite, etc
Exemple: "John Smith" est identifié par "http://example.org/person/johnSmith"
Résolution = redirection
La résolution se fait en 3 étapes:
Exemple:
urn:lsid:ubio.org:namebank:5598458 % host -t SRV _lsid._tcp.ubio.org _lsid._tcp.ubio.org has SRV record 1 0 80 ANIMALIA.ubio.org.
http://animalia.ubio.org/authority/?lsid=urn:lsid:ubio.org:namebank:5598458
1 <?xml version="1.0"?> 2 <definitions xmlns:tns="http://www.example.org/SampleDataServices" 3 targetNamespace="http://www.example.org/SampleDataServices" 4 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 5 xmlns="http://schemas.xmlsoap.org/wsdl/" 6 xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 7 xmlns:httpsns="http://www.omg.org/LSID/2003/DataServiceHTTPBindings"> 8 9 <import namespace="http://www.omg.org/LSID/2003/DataServiceHTTPBindings" location="LSIDDataServiceHTTPBindings.wsdl" /> 10 11 <!-- Example HTTP GET Services (urlEncoding) --> 12 <service name="MyDataHTTPService"> 13 <port name="MyDataServiceHTTPPort" binding="httpsns:LSIDDataHTTPBinding"> 14 <http:address location="http://animalia.ubio.org/authority/data.php" /> 15 </port> 16 </service> 17 <service name="MyMetadataHTTPService"> 18 <port name="MyMetadataServiceHTTPPort" binding="httpsns:LSIDMetadataHTTPBinding"> 19 <http:address location="http://animalia.ubio.org/authority/metadata.php" /> 20 </port> 21 </service> 22 23 </definitions>
http://animalia.ubio.org/authority/metadata.php?lsid=urn:lsid:ubio.org:namebank:5598458
1 <?xml version="1.0" encoding="utf-8"?> 2 <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" 3 xmlns:dcterms="http://purl.org/dc/terms/" 4 xmlns:ubio="urn:lsid:ubio.org:predicates:" 5 xmlns:gla="urn:lsid:lsid.zoology.gla.ac.uk:predicates:" 6 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 8 <rdf:Description rdf:about="urn:lsid:ubio.org:namebank:5598458"> 9 <dc:identifier>urn:lsid:ubio.org:namebank:5598458</dc:identifier> 10 <dc:creator rdf:resource="http://www.ubio.org"/> 11 <dc:subject>Mus musculus albinus</dc:subject> 12 <ubio:taxonomicGroup>Muridae</ubio:taxonomicGroup> 13 <ubio:recordVersion>0</ubio:recordVersion> 14 <ubio:canonicalName>Mus musculus albinus</ubio:canonicalName> 15 <dc:title>Mus musculus albinus</dc:title> 16 <dc:type>Scientific Name</dc:type> 17 <ubio:lexicalStatus>Canonical form</ubio:lexicalStatus> 18 <gla:rank>Trinomial</gla:rank> 19 </rdf:Description> 20 </rdf:RDF>
Metadata_response { string provided_format; Timestamp expiration_date; Metadata_document metadata; }
Utiliser du vocabulaire déjà existant (ne pas réinventer la roue)
-> Vocabulaire générique
-> Vocabulaire spécialisé
Permet de décrire des ressources numériques ou physiques et d’établir des relations avec d'autres ressources.
Utilisé pour décrire les métadonnées
1 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 2 xmlns:dc="http://purl.org/dc/elements/1.1/"> 3 4 <rdf:Description rdf:about="http://projects.biodiversity.be/africanrodentia/fda925e9-bf7f-11e1-8463-001e8c1e04ca"> 5 6 <dc:creator>Alax Cox</dc:creator> 7 <dc:title>A Guide on Mus Musculus</dc:title> 8 <dc:description>Describes the species Mus Musculus and blablabla.</dc:description> 9 <dc:date>2001-01-20</dc:date> 10 11 </rdf:Description> 12 </rdf:RDF>
http://dublincore.org http://wiki.dublincore.org/index.php/User_Guide
Permet de décrire des personnes et les relations qu’elles entretiennent entre elles
1 <?xml version="1.0"?> 2 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 3 xmlns:foaf="http://xmlns.com/foaf/0.1/" 4 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> 5 6 <foaf:Person rdf:nodeID="harry"> 7 <foaf:name>Harry Osborn</foaf:name> 8 <foaf:gender>Male</foaf:gender> 9 <foaf:title>Mr</foaf:title> 10 <foaf:givenname>Harry</foaf:givenname> 11 <rdfs:seeAlso rdf:resource="http://www.osborn.com/harry.rdf"/> 12 </foaf:Person> 13 14 <foaf:Person> 15 <foaf:name>Peter Parker</foaf:name> 16 17 <foaf:knows rdf:nodeID="harry" /> 18 19 <foaf:knows> 20 <foaf:Person> 21 <foaf:name>Aunt May</foaf:name> 22 </foaf:Person> 23 </foaf:knows> 24 </foaf:Person> 25 26 </rdf:RDF>
http://www.foaf-project.org/
Ensemble de termes pour faciliter le partage de l'information sur la diversité biologique.
Standard TDWG très utilisé dans le domaine de la biodiversité (GBIF, ...)
Taxons, observations, specimens, échantillons, ...
Léger et extensible (dans sa nouvelle édition)
IPT
http://www.tdwg.org/standards/450
Schéma très structuré qui permet de décrire des spécimens et des données d'observation.
ABCD contient près de 700 elements
Lourd, mais très complet
Biocase
http://www.tdwg.org/standards/115
Note: le Darwin Core de base peut généralement être mappé en ABCD.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 3 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 4 xmlns:dwc="http://rs.tdwg.org/dwc/terms/" 5 xmlns:dc="http://purl.org/dc/elements/1.1/"> 6 <rdf:Description rdf:about=" http://www.example.org/taxon/7217D220-836A-11DF-8395-0800200C9A66"> 7 <rdfs:type rdf:resource="http://rs.tdwg.org/dwc/terms/Taxon"/> 8 <dwc:basisOfRecord rdf:resource="http://rs.tdwg.org/dwc/dwctype/Taxon"/> 9 <dc:modified>2007-05-04T18:13:51.0Z</dc:modified> 10 <dc:language>en</dc:language> 11 <dwc:scientificNameID rdf:resource="http://www.example.org/taxon/7217D220-836A-11DF-8395-0800200C9A66"/> 12 <dwc:acceptedNameUsageID rdf:resource="http://www.example.org/taxon/7217D220-836A-11DF-8395-0800200C9A66"/> 13 <dwc:originalNameUsageID rdf:resource="http://www.example.org/taxon/7217D220-836A-11DF-8395-0800200C9A66"/> 14 <dwc:scientificName>Amanita alba Lam.</dwc:scientificName> 15 <dwc:acceptedNameUsage>Amanita alba Lam.</dwc:acceptedNameUsage> 16 <dwc:parentNameUsage>Amanita alba Lam.</dwc:parentNameUsage> 17 <dwc:originalNameUsage>Amanita alba Lam.</dwc:originalNameUsage> 18 <dwc:nameAccordingTo>Smith, T. Fungi of Earth</dwc:nameAccordingTo> 19 <dwc:namePublishedIn>Encycl. Méth. Bot .1(1): 107 (1783)</dwc:namePublishedIn> 20 <dwc:higherClassification>Fungi, Basidiomycota, Agaricomycetes, Agaricomycetidae, Agaricales, Amanitaceae</dwc:higherClassification> 21 <dwc:kingdom>Fungi</dwc:kingdom> 22 <dwc:phylum>Basidiomycota</dwc:phylum> 23 <dwc:class>Agaricomycetes</dwc:class> 24 <dwc:order>Agaricales</dwc:order> 25 <dwc:family>Amanitaceae</dwc:family> 26 <dwc:genus>Amanita</dwc:genus> 27 <dwc:specificEpithet>alba</dwc:specificEpithet> 28 <dwc:scientificNameAuthorship>Lam.</dwc:scientificNameAuthorship> 29 <dwc:taxonRank>species</dwc:taxonRank> 30 <dwc:nomenclaturalCode>ICBN</dwc:nomenclaturalCode> 31 <dwc:taxonomicStatus>accepted</dwc:taxonomicStatus> 32 </rdf:Description> 33 </rdf:RDF>
Attention si l'on a plusieurs identifiants pour la même ressource
Exemple:
Solution: rdf:seeAlso ou dc:source
1 <?xml version="1.0" encoding="UTF-8"?> 2 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 3 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 4 xmlns:dwc="http://rs.tdwg.org/dwc/terms/" 5 xmlns:dc="http://purl.org/dc/elements/1.1/" 6 xmlns:owl="http://www.w3.org/2002/07/owl#"> 7 <rdf:Description rdf:about=" http://www.example.org/taxon/7217D220-836A-11DF-8395-0800200C9A66"> 8 <dc:modified>2007-05-04T18:13:51.0Z</dc:modified> 9 <dc:language>en</dc:language> 10 <dwc:basisOfRecord>Taxon</dwc:basisOfRecord> 11 <dwc:scientificNameID rdf:resource="http://www.example.org/taxon/7217D220-836A-11DF-8395-0800200C9A66"/> 12 <rdf:seeAlso rdf:resource="urn:lsid:blabla.org:names:123456"/> 13 <dc:source rdf:resource="urn:lsid:blabla.org:names:123456"/> 14 </rdf:Description> 15 </rdf:RDF>
Vocabulaire utilisé pour les données géographiques
Permet de représenter des points, polygones, lignes, ...
1 <gml:Point gml:id="p21" srsName="http://www.opengis.net/def/crs/EPSG/0/4326"> 2 <gml:coordinates>45.67, 88.56</gml:coordinates> 3 </gml:Point> 4 5 <gml:Polygon> 6 <gml:outerBoundaryIs> 7 <gml:LinearRing> 8 <gml:posList>0,0 100,0 100,100 0,100 0,0</gml:posList> 9 </gml:LinearRing> 10 </gml:outerBoundaryIs> 11 </gml:Polygon> 12 13 <gml:LineString> 14 <gml:posList>100,200 150,300</gml:posList> 15 </gml:LineString>
Mapserver, Geoserver, WFS, WMS
http://www.opengeospatial.org/
Permet de décrire les métadonnées associées aux ressources multimedia
http://species-id.net/wiki/Audubon_Core
Permet d'échanger des données pour des collections (herbarium, ...).
http://www.tdwg.org/standards/312/
http://www.tdwg.org/standards/
http://vocabularies.gbif.org/
Ressource Description Framework
Modèle de graphe destiné à décrire de façon formelle les ressources Web et leurs métadonnées
Web sémantique
Ensemble de triplets (sujet, prédicat, objet)
Specimen CHR1234 has CollectionDate January 10 2012
PREFIX plant:
FROM <http://www.linkeddatatools.com/plantsdata/plants.rdf>
SELECT ?name WHERE {
?planttype plant:planttype ?name.
}
ORDER BY ?name
RDF Schema
Fournit les éléments de base pour la définition d'ontologies
Structurer des ressources RDF
/
#