Yads

41
YADS – A Description Service Tony Hammond Nature Publishing Group

description

 

Transcript of Yads

Page 1: Yads

YADS – A Description

Service

Tony HammondNature Publishing Group

Page 2: Yads

“Down in Hollywood”

“Going down in HollywoodYou better hope that you don't run out of gas

Down in HollywoodHe'll drag you right out of your car and kick your ass

Down in HollywoodThey're standing on a corner waiting for a sucker like you

Down in HollywoodNow, if you want to stay healthy just keep

a-moving right on through”

– Ry Cooder, Bop Till You Drop

Page 3: Yads

YADS – “Down in Hollywood”

Page 4: Yads

YADS – Balance Sheet

Caveats

Like Lazarus – Newly Arisen Legacy DOI Roots Work in Progress Open Issues

Features

Body of Work Available RDF & XML Views Cooked into CrossRef schema

Page 5: Yads

YADS– A Description Service (1)

Open Data Model for Digital Objects Manages Resource Hierarchies Simple Generic XML Format Provides (Latent) RDF Profile Core Property Set Extensible Typing

Page 6: Yads

YADS– A Description Service (2)

Early API – Java, Perl, Python, Ruby Library Code & XSLT Stylesheets Serializations

YADS/XML (Generic) RDF/XML D (Text Description) SVG *(SRX - SPARQL) *(YAML) *(JSON)

Page 7: Yads

YADS – Use Cases

Co-Hosting: Platforms, Mirror Sites Multi-Homing: Products, Components Rendering: Formats Versioning: Editions Significant “Others”: Errata, Suppl. Material, Etc Service Acquisition: Metadata, Etc

Page 8: Yads

YADS

Model Walkthrough

Page 9: Yads

YADS – Background

Origins Late ‘01 from Early Work on DOI Focus on Multiple Resolution Dealt with Task of Relating Handle Values

Resources Literals & Groups

Introduced Notion of a Handle “Map”

Subsequently Generalized to Model Any Web-Based Resource

Page 10: Yads

YADS – Model Walkthrough

DOI Uses Handle Directory Service DOI Single Resolution

Simple Redirect Service

DOI Multiple Resolution Complex Service Set Requires Resource Selection Requires Resource Semantics

YADS Data Model Manages & Describes Resource Hierarchy

Page 11: Yads

YADS – Single Resource

Page 12: Yads

YADS – Multiple Resources

Page 13: Yads

YADS – Groups

Page 14: Yads

YADS – Containers

Page 15: Yads

YADS – Hierarchy

Page 16: Yads

YADS – Profiles

Page 17: Yads

YADS

Defining the Model

Page 18: Yads

YADS – Schemas

EBNF RDF

RDFS N3 OWL (DAML+OIL)

XML DTD XSD RELAX NG (Schematron, XCSL, XMI, …)

Page 19: Yads

YADS – EBNF

yads = { ( item | nest ) } ; (* Structural elements for aggregating resources & properties *) item = {property}, ( resource | collection ), {property} ; nest = ( {property}, resource, {property}, collection, {property} ) | ( {property}, collection, {property}, resource, {property} ) ; (* Structural element for aggregating structural elements *) collection = group, {group} ; group = item | nest ; (* Resource element as per RFC 3986. *) resource = any-uri ; (* Property elements attributing metadata to resources. *) property = access | detail | directive | label | role | service | type ;

Page 20: Yads

YADS – RDF/N3 @prefix : <#> . @prefix s: <http://www.w3.org/2000/01/rdf-schema> . # Nest class ( :collection & :resource ) :Nest a s:Class . # Item class ( :collection | :resource ) :Item a s:Class . # Resource properties :collection a s:Property ; s:domain :Item, :Nest ; s:range s:Container . :resource a s:Property ; s:domain :Item, :Nest ; s:range s:Resource . # Application properties :access a s:Property ; s:domain :Item, :Nest ; s:range s:Literal . ...

Page 21: Yads

YADS – DTD <!DOCTYPE yads [ <!ELEMENT yads (item|nest)*>

<!ELEMENT item (property*, (collection | resource), property*)> <!ELEMENT nest ((property*, collection, property*, resource, property*) | (property*, resource, property*, collection, property*))>

<!ELEMENT collection (item | nest)+> <!ATTLIST collection order (choice | sequenced | unordered) "unordered" >

<!ELEMENT resource (#PCDATA)> <!ELEMENT property (#PCDATA)> <!ATTLIST property type (access | detail | directive | label | role | service | type) #IMPLIED > ]>

Page 22: Yads

YADS – XSD<xsd:element name = "yads"> <xsd:simpleType> <xsd:choice> <xsd:element ref = "item" minOccurs = "0" maxOccurs = "unbounded"/> <xsd:element ref = "nest" minOccurs = "0" maxOccurs = "unbounded"/> </xsd:choice> </xsd:simpleType></xsd:element>

<xsd:element name = "item"> <xsd:complexType> <xsd:sequence> <xsd:choice> <xsd:element ref = "collection"/> <xsd:element ref = "resource"/> </xsd:choice> <xsd:element ref = "property” minOccurs = "0" maxOccurs = "unbounded"/> </xsd:sequence> </xsd:complexType></xsd:element>...

Page 23: Yads

YADS

Serializing the Model

Page 24: Yads

YADS – Example Object

Page 25: Yads

YADS – Description

doi:1014/waterloo_&_city_line

( # Line branches on line { ( # Line stations on line branch { ( resource => <doi:1014/tube/waterloo> type => "tube:station" access => "Rail Link" ) ( resource => <doi:1014/tube/bank> type => "tube:station" ) } type => "tube:line-branch" ) } type => "tube:line")

Page 26: Yads

YADS – Handle “Map”

doi:1014/waterloo_&_city_line

INDEX TYPE VALUE

0 map "( { ( { ( 1 2 3 ) ( 4 5 ) } 6 ) } 7 ) "1 resource <doi:1014/tube/waterloo>2 type "tube:station"3 access "Rail Link"4 resource <doi:1014/tube/bank>5 type "tube:station"6 type "tube:line-branch"7 type "tube:line”

Page 27: Yads

YADS – YAMLdoi:1014/waterloo_&_city_line

---- # Line branches on line - - # Line stations on line branch - - resource: doi:1014/tube/waterloo type: tube:station access: Rail Link - resource: doi:1014/tube/bank type: tube:station - type: tube:line-branch - type: tube:line...

Page 28: Yads

YADS – Generic XML

doi:1014/waterloo_&_city_line

<item> <container> <item> <container> <item> <resource>doi:1014/tube/waterloo</resource> <property type="type">tube:station</property> <property type="access">Rail Link</property> </item> <item> <resource>doi:1014/tube/bank</resource> <property type="type">tube:station</property> </item> </container> <property type="type">tube:line-branch</property> </item> </container> <property type="type">tube:line</property></item>

Page 29: Yads

YADS – Specific XML

doi:1014/waterloo_&_city_line

# Resources elements are promoted to group level# and are "attributed" with properties

<resource type="tube:line"> <resource type="tube:line-branch"> <resource type="tube:station" access="Rail Link">doi:1014/tube/waterloo</resource> <resource type="tube:station">doi:1014/tube/bank</resource> </resource></resource>

Page 30: Yads

YADS – Application XML (1)doi:1014/waterloo_&_city_line

# Typed resources are named <tube:line> <tube:line-branch> <tube:station access="Rail Link">doi:1014/tube/waterloo </tube:station> <tube:station>doi:1014/tube/bank</tube:station> </tube:line-branch></tube:line>

Page 31: Yads

YADS – Application XML (2)doi:1014/menu_popup

# Application XML instance: Menu Popup <menu label="Further Links"> <menu label="DOI Sites"> <item label="IDF">http://www.doi.org</data> <item label="CNRI">http://www.cnri.reston.va.us</data> </menu></menu>

Page 32: Yads

YADS – Schemas

EBNF RDF

RDFS N3 OWL (DAML+OIL)

XML DTD XSD RELAX NG (Schematron, XCSL, XMI, …)

Page 33: Yads

YADS

Querying the Model

Page 34: Yads

YADS – Querying

Standard Query Languages RDF by SPARQL (XML by XQuery?)

Native Query Facilities API

Page 35: Yads

YADS – SPARQL Query BASE <file:../lib/doi/rdf/format1.rdf> PREFIX yads: <doi:1014/yads-schema-2002-04-03#> SELECT ?s ?p ?o WHERE { ?s ?p ?o }

Page 36: Yads

YADS – SPARQL Results<?xml version="1.0" encoding="utf-8"?><sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="s"/> <variable name="p"/> <variable name="o"/> </head> <results ordered="false" distinct="false"> <result> <binding name="s"><uri>file:../lib/doi/rdf/format1.rdf</uri></binding> <binding name="p"><uri>doi:1014/yads-schema-2002-04-03#collection</uri></binding> <binding name="o"><bnode>r1167855627r26072r1</bnode></binding> </result> <result> <binding name="s"><bnode>r1167855627r26072r5</bnode></binding> <binding name="p"><uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#_1</uri></binding> <binding name="o"><bnode>r1167855627r26072r6</bnode></binding> </result> ...

Page 37: Yads

YADS

Servicing the Model

Page 38: Yads

YADS – Services

Page 39: Yads

YADS

Applying the Model

Page 40: Yads

YADS – Home Page

Page 41: Yads

YADS

http://nurture.nature.com/tony/yads