Yads

1,513 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,513
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • This presentation describes a model for DOI resolution advanced and developed by Tony Hammond of Elsevier Science with substantive input from Eamonn Neylon of Manifest Solutions. Work on this model has been ongoing throughout 2001.
  • Yads

    1. 1. YADS – A D escription S ervice Tony Hammond Nature Publishing Group
    2. 2. “ Down in Hollywood” “ Going down in Hollywood You better hope that you don't run out of gas Down in Hollywood He'll drag you right out of your car and kick your ass Down in Hollywood They're standing on a corner waiting for a sucker like you Down in Hollywood Now, if you want to stay healthy just keep a-moving right on through” – Ry Cooder, Bop Till You Drop
    3. 3. YADS – “Down in Hollywood”
    4. 4. YADS – Balance Sheet <ul><li>Caveats </li></ul><ul><li>Like Lazarus – Newly Arisen </li></ul><ul><li>Legacy DOI Roots </li></ul><ul><li>Work in Progress </li></ul><ul><li>Open Issues </li></ul><ul><li>Features </li></ul><ul><li>Body of Work Available </li></ul><ul><li>RDF & XML Views </li></ul><ul><li>Cooked into CrossRef schema </li></ul>
    5. 5. YADS – A Description Service (1) <ul><li>Open Data Model for Digital Objects </li></ul><ul><li>Manages Resource Hierarchies </li></ul><ul><li>Simple Generic XML Format </li></ul><ul><li>Provides (Latent) RDF Profile </li></ul><ul><li>Core Property Set </li></ul><ul><li>Extensible Typing </li></ul>
    6. 6. YADS – A Description Service (2) <ul><li>Early API – Java , Perl , Python , Ruby </li></ul><ul><li>Library Code & XSLT Stylesheets </li></ul><ul><li>Serializations </li></ul><ul><ul><li>YADS/XML (Generic) </li></ul></ul><ul><ul><li>RDF/XML </li></ul></ul><ul><ul><li>D (Text Description) </li></ul></ul><ul><ul><li>SVG </li></ul></ul><ul><ul><li>*(SRX - SPARQL) </li></ul></ul><ul><ul><li>*(YAML) </li></ul></ul><ul><ul><li>*(JSON) </li></ul></ul>
    7. 7. YADS – Use Cases <ul><li>Co-Hosting: Platforms, Mirror Sites </li></ul><ul><li>Multi-Homing: Products, Components </li></ul><ul><li>Rendering: Formats </li></ul><ul><li>Versioning: Editions </li></ul><ul><li>Significant “ Others ” : Errata, Suppl. Material, Etc </li></ul><ul><li>Service Acquisition: Metadata, Etc </li></ul>
    8. 8. YADS Model Walkthrough
    9. 9. YADS – Background <ul><li>Origins Late ‘01 from Early Work on DOI </li></ul><ul><li>Focus on Multiple Resolution </li></ul><ul><li>Dealt with Task of Relating Handle Values </li></ul><ul><ul><li>Resources </li></ul></ul><ul><ul><li>Literals </li></ul></ul><ul><ul><li>& Groups </li></ul></ul><ul><li>Introduced Notion of a Handle “ Map ” </li></ul><ul><li>Subsequently Generalized to Model Any Web-Based Resource </li></ul>
    10. 10. YADS – Model Walkthrough <ul><li>DOI Uses Handle Directory Service </li></ul><ul><li>DOI Single Resolution </li></ul><ul><ul><li>Simple Redirect Service </li></ul></ul><ul><li>DOI Multiple Resolution </li></ul><ul><ul><li>Complex Service Set </li></ul></ul><ul><ul><li>Requires Resource Selection </li></ul></ul><ul><ul><li>Requires Resource Semantics </li></ul></ul><ul><li>YADS Data Model </li></ul><ul><ul><li>Manages & Describes Resource Hierarchy </li></ul></ul>
    11. 11. YADS – Single Resource
    12. 12. YADS – Multiple Resources
    13. 13. YADS – Groups
    14. 14. YADS – Containers
    15. 15. YADS – Hierarchy
    16. 16. YADS – Profiles
    17. 17. YADS Defining the Model
    18. 18. YADS – Schemas <ul><li>EBNF </li></ul><ul><li>RDF </li></ul><ul><ul><li>RDFS </li></ul></ul><ul><ul><li>N3 </li></ul></ul><ul><ul><li>OWL (DAML+OIL) </li></ul></ul><ul><li>XML </li></ul><ul><ul><li>DTD </li></ul></ul><ul><ul><li>XSD </li></ul></ul><ul><ul><li>RELAX NG </li></ul></ul><ul><ul><li>(Schematron, XCSL, XMI, …) </li></ul></ul>
    19. 19. 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 ;
    20. 20. 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 . ...
    21. 21. 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) &quot;unordered&quot; > <!ELEMENT resource (#PCDATA)> <!ELEMENT property (#PCDATA)> <!ATTLIST property type (access | detail | directive | label | role | service | type) #IMPLIED > ]>
    22. 22. YADS – XSD <xsd:element name = &quot;yads&quot;> <xsd:simpleType> <xsd:choice> <xsd:element ref = &quot;item&quot; minOccurs = &quot;0&quot; maxOccurs = &quot;unbounded&quot;/> <xsd:element ref = &quot;nest&quot; minOccurs = &quot;0&quot; maxOccurs = &quot;unbounded&quot;/> </xsd:choice> </xsd:simpleType> </xsd:element> <xsd:element name = &quot;item&quot;> <xsd:complexType> <xsd:sequence> <xsd:choice> <xsd:element ref = &quot;collection&quot;/> <xsd:element ref = &quot;resource&quot;/> </xsd:choice> <xsd:element ref = &quot;property” minOccurs = &quot;0&quot; maxOccurs = &quot;unbounded&quot;/> </xsd:sequence> </xsd:complexType> </xsd:element> ...
    23. 23. YADS Serializing the Model
    24. 24. YADS – Example Object
    25. 25. YADS – Description doi:1014/waterloo_&_city_line ( # Line branches on line { ( # Line stations on line branch { ( resource => < doi:1014/tube/waterloo > type => &quot; tube:station &quot; access => &quot; Rail Link &quot; ) ( resource => < doi:1014/tube/bank > type => &quot; tube:station &quot; ) } type => &quot; tube:line-branch &quot; ) } type => &quot; tube:line &quot; )
    26. 26. YADS – Handle “Map” doi:1014/waterloo_&_city_line INDEX TYPE VALUE 0 map &quot;( { ( { ( 1 2 3 ) ( 4 5 ) } 6 ) } 7 ) &quot; 1 resource < doi:1014/tube/waterloo > 2 type &quot; tube:station &quot; 3 access &quot; Rail Link &quot; 4 resource < doi:1014/tube/bank > 5 type &quot; tube:station &quot; 6 type &quot; tube:line-branch &quot; 7 type &quot; tube:line ”
    27. 27. YADS – YAML 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 ...
    28. 28. YADS – Generic XML doi:1014/waterloo_&_city_line <item> <container> <item> <container> <item> <resource> doi:1014/tube/waterloo </resource> <property type=&quot;type&quot;> tube:station </property> <property type=&quot;access&quot;> Rail Link </property> </item> <item> <resource> doi:1014/tube/bank </resource> <property type=&quot;type&quot;> tube:station </property> </item> </container> <property type=&quot;type&quot;> tube:line-branch </property> </item> </container> <property type=&quot;type&quot;> tube:line </property> </item>
    29. 29. YADS – Specific XML doi:1014/waterloo_&_city_line # Resources elements are promoted to group level # and are &quot;attributed&quot; with properties <resource type=&quot; tube:line &quot;> <resource type=&quot; tube:line-branch &quot;> <resource type=&quot; tube:station &quot; access=&quot; Rail Link &quot;> doi:1014/tube/waterloo </resource> <resource type=&quot; tube:station &quot;> doi:1014/tube/bank </resource> </resource> </resource>
    30. 30. YADS – Application XML (1) doi:1014/waterloo_&_city_line # Typed resources are named <tube:line> <tube:line-branch> <tube:station access=&quot;Rail Link&quot;>doi:1014/tube/waterloo </tube:station> <tube:station>doi:1014/tube/bank</tube:station> </tube:line-branch> </tube:line>
    31. 31. YADS – Application XML (2) doi:1014/menu_popup # Application XML instance: Menu Popup <menu label=&quot;Further Links&quot;> <menu label=&quot;DOI Sites&quot;> <item label=&quot;IDF&quot;>http://www.doi.org</data> <item label=&quot;CNRI&quot;>http://www.cnri.reston.va.us</data> </menu> </menu>
    32. 32. YADS – Schemas <ul><li>EBNF </li></ul><ul><li>RDF </li></ul><ul><ul><li>RDFS </li></ul></ul><ul><ul><li>N3 </li></ul></ul><ul><ul><li>OWL (DAML+OIL) </li></ul></ul><ul><li>XML </li></ul><ul><ul><li>DTD </li></ul></ul><ul><ul><li>XSD </li></ul></ul><ul><ul><li>RELAX NG </li></ul></ul><ul><ul><li>(Schematron, XCSL, XMI, …) </li></ul></ul>
    33. 33. YADS Querying the Model
    34. 34. YADS – Querying <ul><li>Standard Query Languages </li></ul><ul><ul><li>RDF by SPARQL </li></ul></ul><ul><ul><li>(XML by XQuery?) </li></ul></ul><ul><li>Native Query Facilities </li></ul><ul><ul><li>API </li></ul></ul>
    35. 35. 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 }
    36. 36. YADS – SPARQL Results <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <sparql xmlns=&quot;http://www.w3.org/2005/sparql-results#&quot;> <head> <variable name=&quot;s&quot;/> <variable name=&quot;p&quot;/> <variable name=&quot;o&quot;/> </head> <results ordered=&quot;false&quot; distinct=&quot;false&quot;> <result> <binding name=&quot;s&quot;><uri> file:../lib/doi/rdf/format1.rdf </uri></binding> <binding name=&quot;p&quot;><uri> doi:1014/yads-schema-2002-04-03#collection </uri></binding> <binding name=&quot;o&quot;><bnode> r1167855627r26072r1 </bnode></binding> </result> <result> <binding name=&quot;s&quot;><bnode> r1167855627r26072r5 </bnode></binding> <binding name=&quot;p&quot;><uri> http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 </uri></binding> <binding name=&quot;o&quot;><bnode> r1167855627r26072r6 </bnode></binding> </result> ...
    37. 37. YADS Servicing the Model
    38. 38. YADS – Services
    39. 39. YADS Applying the Model
    40. 40. YADS – Home Page
    41. 41. YADS http://nurture.nature.com/tony/yads

    ×