next up previous contents
Next: Change Log Up: Enhanced ``enclosures'' support in Previous: XML Document Type Definition   Contents


RDF Schema for Enclosures

Below is enclosures RDF vocabulary definition using RDF Schema[4]:


<?xml version="1.0" encoding='us-ascii'?>
<!DOCTYPE rdf:RDF [
          <!ENTITY xsd  "http://www.w3.org/2001/XMLSchema#">
          <!ENTITY dc   "http://purl.org/dc/elements/1.1/">
          <!ENTITY rdf  "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
          <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#">
          <!ENTITY rss   "http://purl.org/rss/1.0/">
]>

<!-- 
     RDF Schema for RSS 1.0 enclosures proposal. Full text of proposal
     could be found at:

     http://www.crocodile.org/lord/RSSenclosures/RSSenclosures.pdf
     
     Latest version of this schema file could be downloaded from:
     
     http://www.crocodile.org/lord/RSSenclosures/enc_schema.rdf
     
     (C)2004 Vadim Zaliva <lord@crocodie.org>, 
             Alexander Sova <bird@noir.crocodile.org>

     This work is licensed under a
     Creative Commons Attribution-ShareAlike 2.0 License: 
     http://creativecommons.org/licenses/by-sa/2.0/
  -->

<rdf:RDF 
  xmlns:rdf  = "&rdf;" 
  xmlns:rdfs = "&rdfs;" 
  xmlns:dc   = "&dc;"
  xmlns:rss  = "&rss;"
  xml:base   = "http://crocodile.org/ns/rss/1.0/enclosures">

    <!-- Classes -->

    <!-- This is base abstract class which should not be
         used directly in the documents -->
    <rdfs:Class rdf:about="#BaseEnclosure"
                rdfs:label="Base Enclosure">
        <rdfs:subClassOf rdf:resource="&rdf;Resource"/>
    </rdfs:Class>

    <rdfs:Class rdf:about="#Enclosure"
                rdfs:label="Enclosure">
        <rdfs:subClassOf rdf:resource="#BaseEnclosure"/>
    </rdfs:Class>

    <rdfs:Class rdf:about="#Enclosures"
                rdfs:label="Enclosures">
        <rdfs:subClassOf rdf:resource="#BaseEnclosure"/>
    </rdfs:Class>

    <rdfs:Class rdf:about="#Parallel"
                rdfs:label="Parallel">
        <rdfs:subClassOf rdf:resource="&rdfs;Container"/>
    </rdfs:Class>

    <!-- Data types -->

    <rdfs:Datatype rdf:about="&xsd;nonNegativeInteger"/>
    <rdfs:Datatype rdf:about="&xsd;float"/>
    <rdfs:Datatype rdf:about="&xsd;anyURI"/>
    <rdfs:Datatype rdf:about="&xsd;string"/>

    <!-- Properties common for 'enclosure' and 'enclosures' -->

    <rdf:Property rdf:about="#rel" 
                  rdfs:label="rel">
        <rdfs:domain rdf:resource="#BaseEnclosure"/>
        <rdfs:range  rdf:resource="&xsd;string"/>
    </rdf:Property>

    <rdf:Property rdf:about="#description"
                  rdfs:label="Description" 
                  rdfs:comment="A short text description of the enclosure">
        <rdfs:subPropertyOf rdf:resource="&dc;description"/>
        <rdfs:domain rdf:resource="#BaseEnclosure"/>
    </rdf:Property>

    <!-- Properties specific to 'Enclosure' -->

    <rdf:Property rdf:about="#url"
                  rdfs:label="URL">
        <rdfs:domain rdf:resource="#Enclosure"/>
        <rdfs:range  rdf:resource="&xsd;anyURI"/>
    </rdf:Property>

    <rdf:Property rdf:about="#type"
                  rdfs:label="Type">
        <rdfs:subPropertyOf rdf:resource="&dc;format"/>
        <rdfs:domain rdf:resource="#Enclosure"/>
    </rdf:Property>

    <rdf:Property rdf:about="#location"
                  rdfs:label="Location">
        <rdfs:subPropertyOf rdf:resource="&dc;coverage"/>
        <rdfs:domain rdf:resource="#Enclosure"/>
    </rdf:Property>

    <rdf:Property rdf:about="#transport"
                  rdfs:label="Transport">
        <rdfs:domain rdf:resource="#Enclosure"/>
        <rdfs:range  rdf:resource="&xsd;string"/>
    </rdf:Property>

    <rdf:Property rdf:about="#length"
                  rdfs:label="Length">
        <rdfs:domain rdf:resource="#Enclosure"/>
        <rdfs:range  rdf:resource="&xsd;nonNegativeInteger"/>
    </rdf:Property>

    <rdf:Property rdf:about="#quality"
                  rdfs:label="Quality">
        <rdfs:domain rdf:resource="#Enclosure"/>
        <rdfs:range  rdf:resource="&xsd;float"/>
    </rdf:Property>

    <!-- Properties specific to 'Enclosures' -->

    <rdf:Property rdf:about="#children" 
                  rdfs:label="Children">
        <rdfs:domain rdf:resource="#Enclosures"/>
        <rdfs:range  rdf:resource="&rdfs;Container"/>
    </rdf:Property>

    <!-- new RSS:item properties -->

    <rdf:Property rdf:about="#enclosures" 
                  rdfs:label="RSS Item Enclosures">
        <rdfs:domain rdf:resource="&rss;item"/>
    </rdf:Property>

</rdf:RDF>



Vadim Zaliva 2004-12-15