Look, Lead, Love, Learn: Four Steps to Better Business, a Better Life, and Conquering Complexity
Yads
-
Upload
tony-hammond -
Category
Business
-
view
1.768 -
download
0
description
Transcript of Yads
YADS – A Description
Service
Tony HammondNature Publishing Group
“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
YADS – “Down in Hollywood”
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
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
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)
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
YADS
Model Walkthrough
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
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
YADS – Single Resource
YADS – Multiple Resources
YADS – Groups
YADS – Containers
YADS – Hierarchy
YADS – Profiles
YADS
Defining the Model
YADS – Schemas
EBNF RDF
RDFS N3 OWL (DAML+OIL)
XML DTD XSD RELAX NG (Schematron, XCSL, XMI, …)
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 ;
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 . ...
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 > ]>
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>...
YADS
Serializing the Model
YADS – Example Object
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")
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”
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...
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>
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>
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>
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>
YADS – Schemas
EBNF RDF
RDFS N3 OWL (DAML+OIL)
XML DTD XSD RELAX NG (Schematron, XCSL, XMI, …)
YADS
Querying the Model
YADS – Querying
Standard Query Languages RDF by SPARQL (XML by XQuery?)
Native Query Facilities API
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 }
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> ...
YADS
Servicing the Model
YADS – Services
YADS
Applying the Model
YADS – Home Page
YADS
http://nurture.nature.com/tony/yads