LSIDs and RDF - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

LSIDs and RDF

Description:

GUID to a property type, eg the ID of the property 'creator' ... DublinCore handy set of basic descriptive elements, such as title, creator, language, etc ... – PowerPoint PPT presentation

Number of Views:115
Avg rating:3.0/5.0
Slides: 47
Provided by: richa112
Category:
Tags: rdf | creator | lsids

less

Transcript and Presenter's Notes

Title: LSIDs and RDF


1
LSIDs and RDF
Kevin Richards TDWG 2006
2
Introduction
  • Kevin Richards (Landcare Research NZ)
  • Landcare Informatics group
  • GUID Subgroup
  • LSID .NET code port
  • Disclaimer / intended audience
  • Overview of tutorial

3
Requirements
  • Files on network
  • ftp//cissus.mobot.org/incoming/tdwg/Tutorial/
  • Username garfile Password garden2003
  • Internet connection
  • Text editor (or xml editor)

4
RDF
  • What is RDF
  • Resource Description Framework
  • w3C
  • Describes resources on the web
  • Putting data on the web
  • Intended for machine processing
  • Has a defined xml syntax
  • Semantic relationships of data objects
  • Aimed at distributed data with varying types

5
RDF Triples
  • English language equivalent http//www.example.
    org/index.html has a creator whose value is John
    Smith
  • Uses GUIDs (Web based GUIDs URIs, etc)
  • Eg GUID1 has creator GUID2
  • Subject Predicate Object format
  • Subject (the object being described)
  • GUID or blank (infinite set)
  • Predicate (the relationship/property type)
  • GUID to a property type, eg the ID of the
    property creator
  • Object (the value assigned to the subject object)
  • GUID of another object, blank, or literal
  • Build up map/graph of object relationships

6
RDF Graphs
  • The basis of RDF
  • Useful analysis and equivalence calculation tool
  • Eg
  • example.org/index.html page created by staffid
    85740
  • example.org/index.html page language is english
    (en)
  • Equivalent Triples
  • lthttp//www.example.org/index.htmlgt
    lthttp//purl.org/dc/elements/1.1/creatorgt
    lthttp//www.example.org/staffid/85740gt .
  • lthttp//www.example.org/index.htmlgt
    lthttp//www.example.org/terms/creation-dategt
    "August 16, 1999" . lthttp//www.example.org/index.
    htmlgt lthttp//purl.org/dc/elements/1.1/languagegt
    "en"

7
RDF formats
  • Statement - http//www.example.org/index.html
    has a creator whose value is John Smith
  • N3 notation
  • http//www.example.org/index.html dccreator
    John Smith.
  • Xml
  • ltrdfDescription rdfabout"http//www.example.or
    g/index.html"gt
  • ltdccreatorgtJohn Smithlt/dccreatorgt
  • lt/rdfDescriptiongt

8
Basic RDF
  • lt?xml version"1.0"?gt
  • ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
    df-syntax-ns"
  • xmlnsdc"http//purl.org/dc/elements/1.1
    /"gt
  • ltrdfDescription rdfabout"http//www.example.or
    g/index.html"gt
  • ltdclanguagegtenlt/dclanguagegt
  • lt/rdfDescriptiongt
  • lt/rdfRDFgt
  • rdfDescription basic description xml node
  • Every xml node must be namespaced and the
    namespace must be resolvable
  • DublinCore handy set of basic descriptive
    elements, such as title, creator, language, etc

9
rdfresource
  • Eg
  • lt?xml version"1.0"?gt
  • ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
    df-syntax-ns"
  • xmlnsdc"http//purl.org/dc/elements/1.1
    /"gt
  • ltrdfDescription rdfabout"http//www.example.or
    g/index.html"gt
  • ltdclanguagegtenlt/dclanguagegt
  • ltdccreator rdfresource"http//www.ldodds.com/
    foaf/foaf-a-matic/JohnSmith" /gt
  • lt/rdfDescriptiongt
  • lt/rdfRDFgt

10
RDF Types
  • Define data types
  • Improves control of input data ranges
  • Eg birthDate of a person
  • ltpersonbirthDate rdfdataType
    "http//www.w3.org/2001/XMLSchemadategt1940-6-19lt
    /personbirthDategt
  • Eg example.com employee Jane Smith is of type
    Person
  • (n3 notation)
  • _jane extermsmailbox ltmailtojane_at_example.orggt
    .
  • _jane rdftype extermsPerson .
  • _jane extermsname "Jane Smith" .
  • _jane extermsempID "23748"

11
RDF Example FOAF
  • Go to FOAF-a-matic web site
  • http//www.ldodds.com/foaf/foaf-a-matic
  • Create Profile, Generate RDF
  • Copy RDF
  • Go to W3C RDF Validator
  • http//www.w3.org/RDF/Validator/
  • Validate RDF displays triples

12
Inference
FOAF Person A
Rdf triple A knows B
FOAF Person B
Inferred triple - A is one degree separated from C
Rdf triple B knows C
FOAF Person C
13
RDF Exercise 1
  • Create some RDF instance xml for a specimen
  • Make up an namespace for the elements
  • Make up elements for
  • Specimen Catalog Number (eg SP1)
  • Specimen Collected By
  • Specimen Locality
  • Validate using RDF validator on the web
  • Eg RDF
  • lt?xml version"1.0"?gt
  • ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
    df-syntax-ns"
  • xmlnsdc"http//purl.org/dc/elements/1.1
    /"gt
  • ltrdfDescription rdfabout"http//www.example.or
    g/index.html"gt
  • ltdclanguagegtenlt/dclanguagegt
  • lt/rdfDescriptiongt
  • lt/rdfRDFgt

14
Example Solution
  • lt?xml version"1.0"?gt
  • ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
    df-syntax-ns"
  • xmlnsspec"http//specimen.org/specimens
    /"gt
  • ltrdfDescription rdfaboutSP1"gt
  • ltspeccatalogNumbergtSP1lt/speccatalogNumbergt
  • ltspeccollectedBygtFred Smithlt/speccollectedBygt
  • ltspeclocalitygtGeorge Stlt/speclocalitygt
  • ltspeccollectedDate rdfdataTypehttp//www.w3.
    org/2001/XMLSchemadategt2006-10-18lt/speccollecte
    dDategt
  • lt/rdfDescriptiongt
  • lt/rdfRDFgt

15
RDF Schema
  • Similar to xml schema
  • Define RDF classes, types and properties
  • Namespace - http//www.w3.org/2000/01/rdf-schema

16
RDF Schema
  • Example Schema TCS-RDF
  • ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
    df-syntax-ns"
  • xmlnsrdfs"http//www.w3.org/2000/01/rdf-schema
    " xmlnsdcterms"http//purl.org/dc/terms/"
  • xmlnsdc"http//purl.org/dc/elements/1.1/"
    xmlnstn"http//tdwg.org/2006/03/12/TaxonNames/"gt
  • ltrdfsClass rdfabout"http//tdwg.org/2006/03/12
    /TaxonNames/TaxonName"gt
  • ltrdfslabel xmllang"en"gtTaxon
    Namelt/rdfslabelgt
  • ltrdfssubClassOf rdfresource"http//www.w3.org
    /2000/01/rdf-schemaResource"/gt
  • lt/rdfsClassgt
  • ltrdfProperty rdfabout"http//tdwg.org/2006/03/
    12/TaxonNames/nameComplete"gt
  • ltrdfslabel xmllang"en"gtName
    Completelt/rdfslabelgt
  • ltrdfsdomain rdfresource"http//tdwg.org/2006/
    03/12/TaxonNames/TaxonName"/gt
  • ltrdfsrange rdfresource"http//www.w3.org/2000
    /01/rdf-schemaLiteral"/gt
  • lt/rdfPropertygt
  • lt/rdfRDFgt

17
RDF Exercise 2
  • Collection RDF Schema
  • Write an RDF schema to describe our
    collection.org example LSIDs
  • Write an instance of this schema using
    rdfDescription tag or typed tag
  • Validate using RDF validator on the web

18
RDF
  • RDF Triple Stores
  • What are they
  • Problems
  • size
  • speed of lookup
  • distribution/duplication

19
Ontologies
  • Defined using RDFS or OWL (Web Ontology Language)
    others
  • Dublin Core
  • eg http//purl.org/dc/elements/1.1/creator
  • Eg http//www.example.org/index.html has a
    creator whose value is John Smith
  • Subject http//www.example.org/index.html
  • Predicate http//purl.org/dc/elements/1.1/creato
    r
  • Object http//www.example.org/staffid/85740
    (Johns Id)
  • FOAF (Friend Of A Friend)
  • TDWG ontologies?

20
RDF Tools
  • RDF Tools/Software
  • Protégé
  • Altova SemanticWorks
  • Oracle triple stores
  • W3c Validator

21
RDF References
  • RDF Primer http//www.w3.org/TR/rdf-primer/
  • RDF Syntax - http//www.w3.org/TR/rdf-syntax-gramm
    ar/
  • RDF Schema - http//www.w3.org/TR/rdf-schema/
  • Another Primer - http//notabug.com/2002/rdfprimer
    /
  • w3c RDF Tutorial - http//www.w3schools.com/rdf/de
    fault.asp
  • Dublin Core RDF - http//dublincore.org/

22
PART 2 - LSIDs
23
LSIDs
  • Overview
  • Requirements
  • Files on network
  • ftp//cissus.mobot.org/incoming/tdwg/Tutorial/
  • Username garfile Password garden2003
  • Web server (IIS)
  • Text editor

24
LSIDs
  • Background on GUIDs
  • What is a GUID?
  • Globally Unique IDentifier
  • Persistent
  • Opaque transparent
  • Resolvable?
  • Examples UUID, DOI, Handle, LSID, PURL

25
LSIDs
  • What is an LSID?
  • Life Science IDentifier
  • Developed by OMG W3C
  • Implemented by the team at IBM
  • Structure urnlsidauthoritynamespaceobjectre
    vision
  • Eg urnlsidindexfungorum.orgnames213649
  • Used for data objects, databases, images, files
    etc?
  • Versioning
  • Whos using them

26
GUID subgroup
  • Subgroup decisions
  • To use LSIDs for identifying biodiversity data,
    but not exclude use of other GUIDs
  • Reuse GUIDs where they already exist, eg some
    DOIs for literature (assuming no commercial
    restrictions)
  • Use RDF for metadata of objects identified by
    LSIDs
  • Implement as a minimum the HTTP GET metadata
    service for each LSID server/resolver
  • See GUID Report - http//wiki.gbif.org/guidwiki/wi
    kka.php?wakkaGUID2Reportshow_comments1

27
Pros and Cons of LSIDs
URL
  • Tied to physical addresses
  • Inspection required to determine identical
    contents
  • Brittle (broken links)

LSID
  • Same Id same content
  • Location independent
  • Enables transparent caching
  • Formalized, rich metadata
  • Requires specialised software to resolve an LSID
    (not built in to most software)

Cons
28
LSID Tools and Services
  • IBM LSID Launchpad
  • Firefox LSID Browser
  • LSID Tester (Rod Page)
  • Web based resolver http//lsid.biopathways.org/r
    esolver/
  • Example LSID servers
  • Bio Pathways http//lsid.biopathways.org/resolve
    r/urnlsidgene.ucl.ac.uk.lsid.biopathways.orghug
    oMVP (doesnt work with Launchpad)
  • Index Fungorum - urnlsidindexfungorum.orgnames
    213649
  • IPNI urnlsidipni.orgnames30000959-21.1.2.1
  • uBio - urnlsidubio.orgnamebank11815

29
LSID Code
  • Current Code Stacks
  • Open Source (sourceforge.net)
  • Java, C, Perl (IBM)
  • Microsoft .NET (Myself)

30
An LSID is resolved using a three-part resolution
1 Resolve LSID Authority
Client
DNS HTTP
Query Authority
2 Get Available Services
WSDL
Data via
3 Retrieve Data
SOAP, HTTP, FTP, NFS, AFS, DFS
31
DNS Lookup
  • Example
  • Go to command prompt
  • gt nslookup
  • gt set typesrv
  • gt _lsid._tcp.indexfungorum.org
  • Results in
  • lsid.indexfungorum.org (194.203.77.68)
  • -gt used as authority location for resolving
    indexfungorum.org LSIDs

32
Questions before hands on tutorial?
33
Really Simple LSID
  • A basic LSID setup
  • LSID server with only one service for returning
    metadata for LSIDs using HTTP GET
  • IIS PHP
  • Specimen collection example
  • urnlsidcollection.orgspecimensid
  • Specimen text files to load metadata from
  • No data

34
LSID Authority Setup
LSID HTTP Request
IIS
Default is to return wsdl of php authority
location
LSID Metadata Request
PHP scripts
Load metadata from file
Return metadata
35
Step 1 IIS authority
  • Add authority folder to c\inetpub\wwwroot
  • Copy authority files to authority directory
  • Start IIS
  • Configure authority as a web application
  • Explain files

36
Step 2 PHP
  • Copy PHP files to c\php
  • Configure IIS to run PHP files (add php5isapi.dll
    to the mappings for authority)
  • Add index.php to default docs
  • Set security permissions on php files/dir?

37
Step 3 Configure LSID Launchpad
  • Add local host authority for collection.org
  • Add application for text editor
  • Test, eg lsidresurnlsidindexfungorum.orgnames
    213649

38
Step 4 Test authority
  • Test authority
  • Browse to http//localhost/authority/
  • Test metadata
  • Browse to http//localhost/authority/metadata.php
  • Browse to http//localhost/authority/metadata.php?
    lsidurnlsidcollection.orgspecimens1
  • Test using LSID Launchpad
  • lsidresurnlsidcollection.orgspecimens1
  • Cant read/display it as it is text, not rdf

39
Use RDF for metadata
  • Use the RDF collection schema (created in the RDF
    section) in our LSID authority
  • Build an RDF instance for the schema
  • Test the LSID metadata using LSID Launchpad
  • Eg lsidresurnlsidcollection.orgspecimens4

40
Linking to other data
  • Add link for the person
  • Eg
  • Change collectedBy property
  • ltrdfProperty rdfabout"collcollectedBy"gt
  • ltrdfslabel xmllang"en"gtCollected
    Bylt/rdfslabelgt
  • ltrdfsisDefinedBy rdfresource"coll"/gt
  • ltrdfsdomain rdfresource"collSpecimen"/gt
  • ltrdfsrange rdfresource"http//collection.org/
    specimens/Person"/gt
  • lt/rdfPropertygt
  • to the rdf schema
  • Add
  • ltcollcollectedBy rdfresource"urnlsidcollect
    ion.orgpeople1"/gt
  • To the instance

41
Linking to other data
  • See lsidresurnlsidcollection.orgspecimens6

42
Java LSID Code
  • Highlights of the LSID Java Stack
  • Simple APIs, synchronous and asynchronous
  • Support for HTTP, SOAP and FTP
  • WSDL, Data and Metadata Cache
  • Highly configurable
  • Cache location/policy, host-mappings, metadata
    handling
  • Leverages many Java technologies
  • Xerces, Xalan, Axis, wsdl4J, and Castor

43
Java LSID Web Application
LSID Server
Startup
Load services
Services Configuration File
Create registry
Service Registry
Internet
LSID Request
HTTP Req
Lookup Service for LSID authority
HTTP Resp
Response
LSID Authority Classes
Call appropriate authority class function
44
LSID Resolution code (Client)
  • Given an LSID in String format, we can easily
    open an InputStream to the data or metadata.
    (listing1)
  • LSID lsid new LSID(urnlsid)
  • LSIDResolver resolver new LSIDResolver(lsid)
  • InputStream data resolver.getData()
  • If we care about which protocol or location to
    use, we can choose from those available in the
    WSDL returned from getAvailableServices.
  • LSIDWSDLWrapper wsdl resolver.getWSDLWrapper()
  • LSIDDataPort port wsdl.getPortForProtocol(WSDLCo
    nstants.SOAP)
  • InputStream in resolver.getData(port)

45
LSID References
  • LSID Source Forge - http//lsid.sourceforge.net/
  • LSID .NET Source Forge - http//sourceforge.net/pr
    ojects/lsid-dotnet
  • LSID Tutorial - http//www-128.ibm.com/developerwo
    rks/opensource/library/os-lsid/
  • LSID Specification - http//www.omg.org/cgi-bin/do
    c?dtc/04-05-01
  • LSID Tester - http//linnaeus.zoology.gla.ac.uk/r
    page/lsid/tester/
  • LSID Launchpad - http//www-124.ibm.com/developerw
    orks/downloads/detail.php?group_id124whatrelei
    d553
  • GUID Subgroup - http//www.tdwg.org/TDWG_GUID.htm
  • GUID Subgroup Reports
  • http//wiki.gbif.org/guidwiki/wikka.php?wakkaGUID
    2Reportshow_comments1
  • http//wiki.tdwg.org/twiki/pub/TIP/TipDocuments/GU
    ID1Report.pdf
  • Firefox LSID developer site - http//lsid.mozdev.o
    rg/

46
Thanks to
  • Ricardo Pereira
  • Roger Hyam
  • Rod Page
  • Lee Belbin
  • The team at Landcare Research
  • Jerry Cooper
  • Nick Spencer
  • Aaron Wilton
  • Michael Cochrane
Write a Comment
User Comments (0)
About PowerShow.com