OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Examplotron for rss 1.0 and request for comments



(also posted on rss-dev)

I am now testing examplotron [1] against real live vocabularies starting
with RSS 1.0 that offers issues simpler but similar than XHTML.

The current release (0.3 [2]) does quite a good job for RSS 1.0 core
[3].

In fact an examplotron for RSS1.0 core is really just an example with a
couple of additional attributes and the following one is checking the
item/image/textinput definitions and references using the eg:assert
attribute:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns="http://purl.org/rss/1.0/" 
         xmlns:eg="http://examplotron.org/0/" 
         xmlns:rss10="http://purl.org/rss/1.0/">
  <channel rdf:about="http://www.xml.com/xml/news.rss">
    <title>XML.com</title>
    <link>http://xml.com/pub</link>
    <description>
                 XML.com features a rich mix of information and services 
                 for the XML community.
               </description>
    <image rdf:resource="http://xml.com/universal/images/xml_tiny.gif" 
           eg:occurs="?" 
           eg:assert="/rdf:RDF/rss10:image/@rdf:about=@rdf:resource"/>
    <items>
      <rdf:Seq>
        <rdf:li resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" 
                eg:occurs="+" 
                eg:assert="/rdf:RDF/rss10:item/@rdf:about=@resource"/>
      </rdf:Seq>
    </items>
    <textinput rdf:resource="http://search.xml.com" 
               eg:occurs="?" 
       eg:assert="/rdf:RDF/rss10:textinput/@rdf:about=@rdf:resource"/>
  </channel>
  <image rdf:about="http://xml.com/universal/images/xml_tiny.gif" 
         eg:occurs="?" 
    
eg:assert="/rdf:RDF/rss10:channel/rss10:image/@rdf:resource=@rdf:about">
    <title>XML.com</title>
    <link>http://www.xml.com</link>
    <url>http://xml.com/universal/images/xml_tiny.gif</url>
  </image>
  <item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html" 
        eg:occurs="+"
    
eg:assert="/rdf:RDF/rss10:channel/rss10:items/rdf:Seq/rdf:li/@resource=@rdf:about">
    <title>Processing Inclusions with XSLT</title>
    <link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link>
    <description eg:occurs="?">
                Processing document inclusions with general XML tools
can be 
                problematic. This article proposes a way of preserving
inclusion 
                information through SAX-based processing.
               </description>
  </item>
  <textinput rdf:about="http://search.xml.com" 
             eg:occurs="?"
     
eg:assert="/rdf:RDF/rss10:channel/rss10:textinput/@rdf:resource=@rdf:about">
    <title>Search XML.com</title>
    <description>Search XML.com's XML collection</description>
    <name>s</name>
    <link>http://search.xml.com</link>
  </textinput>
</rdf:RDF>

I am now working on the modules and I'd like to get your feedback on a
first solution that I have partially implemented (not posted yet).

I would still like to follow the way we are describing a module such as
the Dublin Core module [4] by giving examples of partial RSS1.0
documents with dc elements.

I'd propose to add 2 new features in examplotron.

The first one would be the element eg:import:

<eg:import xlink:href="rss10.xml"/>

The meaning of eg:import is to "import" the definitions from another
examplotron by merging the possibilities described in the imported
document with these from the current document.

This is not sufficient to controle modules, though since we
obviously do not want to redefine the RSS1.0 core vocabulary in the DC
module and we need a way to say that the statements in the DC module
about RSS 1.0 core are "non normative".

For this, I'd like to propose a "eg:placeHolder" attribute that would
say that the current element is just here to identify a path and not to
add a new pattern:

<channel eg:placeHolder="true">

With these two features, an examplotron for the DC module would be:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns="http://purl.org/rss/1.0/"
         xmlns:eg="http://examplotron.org/0/"
         xmlns:xlink="http://www.w3.org/1999/xlink"
        eg:placeHolder="true">
  <eg:import xlink:href="rss10.xml"/>
  <channel eg:placeHolder="true">
    <dc:publisher eg:occurs="*">The O'Reilly Network</dc:publisher>
    <dc:creator eg:occurs="*">Rael Dornfest
(mailto:rael@oreilly.com)</dc:creator>
    <dc:rights eg:occurs="*">Copyright  2000 O'Reilly &amp; Associates,
Inc.</dc:rights>
    <dc:date eg:occurs="*">2000-01-01T12:00+00:00</dc:date>
    <dc:subject eg:occurs="*">XML</dc:subject>
    <dc:title eg:occurs="*">Your title here</dc:title>
    <dc:description eg:occurs="*">Description</dc:description>
    <dc:contributor eg:occurs="*">Contributor</dc:contributor>
    <dc:type eg:occurs="*">Type</dc:type>
    <dc:format eg:occurs="*">Format</dc:format>
    <dc:identifier eg:occurs="*">Identifier</dc:identifier>
    <dc:source eg:occurs="*">Source</dc:source>
    <dc:language eg:occurs="*">Language</dc:language>
    <dc:relation eg:occurs="*">Relation</dc:relation>
    <dc:coverage eg:occurs="*">Coverage</dc:coverage>
  </channel>
  <image eg:placeHolder="true">
    <dc:publisher eg:occurs="*">Publisher</dc:publisher>
    <dc:creator eg:occurs="*">Author</dc:creator>
    <dc:rights eg:occurs="*">Rights</dc:rights>
    <dc:date eg:occurs="*">date</dc:date>
    <dc:subject eg:occurs="*">subject</dc:subject>
    <dc:title eg:occurs="*">Your title here</dc:title>
    <dc:description eg:occurs="*">Description</dc:description>
    <dc:contributor eg:occurs="*">Contributor</dc:contributor>
    <dc:type eg:occurs="*">Type</dc:type>
    <dc:format eg:occurs="*">Format</dc:format>
    <dc:identifier eg:occurs="*">Identifier</dc:identifier>
    <dc:source eg:occurs="*">Source</dc:source>
    <dc:language eg:occurs="*">Language</dc:language>
    <dc:relation eg:occurs="*">Relation</dc:relation>
    <dc:coverage eg:occurs="*">Coverage</dc:coverage>
  </image>
  <item eg:placeHolder="true">
    <dc:description eg:occurs="*">
                 XML is placing increasingly heavy loads on the existing
technical
                 infrastructure of the Internet.
               </dc:description>
    <dc:publisher eg:occurs="*">The O'Reilly Network</dc:publisher>
    <dc:creator eg:occurs="*">Simon St.Laurent
(mailto:simonstl@simonstl.com)</dc:creator>
    <dc:rights eg:occurs="*">Copyright  2000 O'Reilly &amp; Associates,
Inc.</dc:rights>
    <dc:date eg:occurs="*">2000-01-01T12:00+00:00</dc:date>
    <dc:subject eg:occurs="*">XML</dc:subject>
    <dc:title eg:occurs="*">Your title here</dc:title>
    <dc:contributor eg:occurs="*">Contributor</dc:contributor>
    <dc:type eg:occurs="*">Type</dc:type>
    <dc:format eg:occurs="*">Format</dc:format>
    <dc:identifier eg:occurs="*">Identifier</dc:identifier>
    <dc:source eg:occurs="*">Source</dc:source>
    <dc:language eg:occurs="*">Language</dc:language>
    <dc:relation eg:occurs="*">Relation</dc:relation>
    <dc:coverage eg:occurs="*">Coverage</dc:coverage>
  </item>
  <textinput eg:placeHolder="true">
    <dc:publisher eg:occurs="*">Publisher</dc:publisher>
    <dc:creator eg:occurs="*">Author</dc:creator>
    <dc:rights eg:occurs="*">Rights</dc:rights>
    <dc:date eg:occurs="*">date</dc:date>
    <dc:subject eg:occurs="*">subject</dc:subject>
    <dc:title eg:occurs="*">Your title here</dc:title>
    <dc:description eg:occurs="*">Description</dc:description>
    <dc:contributor eg:occurs="*">Contributor</dc:contributor>
    <dc:type eg:occurs="*">Type</dc:type>
    <dc:format eg:occurs="*">Format</dc:format>
    <dc:identifier eg:occurs="*">Identifier</dc:identifier>
    <dc:source eg:occurs="*">Source</dc:source>
    <dc:language eg:occurs="*">Language</dc:language>
    <dc:relation eg:occurs="*">Relation</dc:relation>
    <dc:coverage eg:occurs="*">Coverage</dc:coverage>
  </textinput>
</rdf:RDF>

Thanks for your feedback!

Eric

[1] http://examplotron.org/
[2] http://examplotron.org/0/3/
[3] http://purl.org/rss/1.0/
[4]
http://groups.yahoo.com/group/rss-dev/files/Modules/Standard/mod_dc.html
-- 
Rendez-vous  Paris pour net2001.
                         http://www.mynet2001.net/pgmonline2001/it2.html
------------------------------------------------------------------------
Eric van der Vlist       Dyomedea                    http://dyomedea.com
http://xmlfr.org         http://4xt.org              http://ducotede.com
------------------------------------------------------------------------