Atom OWL Model

2005-10-16: Work is ongoing to update the model to Atom Format 1.0 - now at atomowl.org

1 Introduction

Atom/OWL Home

1.1 Overview

This document describes the Atom syndication language in the Web Ontology Language (OWL). The syntax used within the text for specification is Notation 3. This XSLT stylesheet can be used to extract the schema from the text, ensuring it stays consistent with the text.

There is also an XSLT stylesheet available for converting Atom feeds into RDF/XML instance representations based on this model, see Utilities.

Schema/Ontology in N3 (generated from this document)

Schema/Ontology in RDF/XML (static, syntax converted with IsaVis)

1.2 Status

Please note the model presented here is not current with the Atom Format specification. See notes on the home page.

This document has no official status.

Latest version : 2004-06-11 (lots of minor fixes)

Comments

Note to self - 2004-08-13 - notes on using OWL to describe syntax (/infoset) rather than real-world objects needed - see danbri's comment in #foaf

Contributors : Danny Ayers, Henry Story, Bill de hÓra

1.3 Document Conventions

Terms marked (duplicate) appear more than once in the specifications, i.e. in different parts of the structure of an Atom document. The definition will be provided at the first occurrence of the term. It is assumed here that the semantics of named terms will remain consistent throughout a document.


2 Atom Documents

  @prefix : <#> .  
  @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 
  @prefix owl: <http://www.w3.org/2002/07/owl#> . 
  @prefix dc: <http://purl.org/dc/elements/1.1/> . 
 
  <> a owl:Ontology; 

  rdfs:comment "Atom allows lists of information, known as syndication feeds, 
  to be synchronised between publishers and consumers. Atom feeds are composed 
  of a number of entries, each with an extensible set of associated metadata."  .

Atom Documents

3 Common Atom Constructs

  :AtomConstruct     a owl:Class;
  rdfs:comment "common Atom structure" .

Common Atom Constructs

3.1 Content Constructs

 3.1  Content Constructs

(duplicate)
    :Content     a owl:Class;
         rdfs:comment "Content";
         rdfs:label "content"@en;
         rdfs:subClassOf :AtomConstruct .

3.1.1 "type" Attribute

    :type     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "indicates the media type of the content";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Content 
            :Link  ) ];
        rdfs:range <http://www.w3.org/2001/XMLSchema#string> .
  3.1.1  "type" Attribute

3.1.2 "mode" Attribute

    :mode     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "indicates the method used to encode the content";
         rdfs:domain :Content;
         rdfs:range  [
             a owl:DataRange;
             owl:oneOf  (
            "xml"^^<http://www.w3.org/2001/XMLSchema#string> 
            "escaped"^^<http://www.w3.org/2001/XMLSchema#string> 
            "base64"^^<http://www.w3.org/2001/XMLSchema#string>  ) ] .


  3.1.2  "mode" Attribute

3.2 Person Constructs

    :Person     a owl:Class;         
        rdfs:subClassOf :AtomConstruct .

 3.2  Person Constructs

3.2.1 "atom:name" Element

    :name     a owl:DatatypeProperty;         
        rdfs:comment "human-readable name for the person, corporation or other entity";         
        rdfs:domain :Person;         
        rdfs:range <http://www.w3.org/2001/XMLSchema#string> .


  3.2.1  "atom:name" Element

3.2.2 "atom:url" Element

    :url     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "a URI associated with the person";
         rdfs:domain :Person;
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .
         
3.2.2  "atom:url" Element

3.2.3 "atom:email" Element

    :email     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment 
"e-mail address associated with the person";
         rdfs:domain :Person;
         rdfs:range <http://www.w3.org/2001/XMLSchema#anyURI> .
         
3.2.3  "atom:email" Element

3.3 Date Constructs

 :value a owl:DatatypeProperty,
  owl:FunctionalProperty;
  rdfs:comment "a W3C Date-Time";
  rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .
  
 3.3  Date Constructs

3.4 Link Constructs

    :Link     a owl:Class;
         rdfs:subClassOf :AtomConstruct .

 3.4  Link Constructs

3.4.1 "rel" Attribute

    :rel     a owl:DatatypeProperty,
                owl:FunctionalProperty;         
        rdfs:comment "the type of relationship that the link represents";         
        rdfs:domain :Link;         
        rdfs:label "rel"@en;         
        rdfs:range  [             
            a owl:DataRange;             
        owl:oneOf  (            
            "alternate"^^<http://www.w3.org/2001/XMLSchema#string>             
            "start"^^<http://www.w3.org/2001/XMLSchema#string>             
            "next"^^<http://www.w3.org/2001/XMLSchema#string>             
            "prev"^^<http://www.w3.org/2001/XMLSchema#string>             
            "service.edit"^^<http://www.w3.org/2001/XMLSchema#string>             
            "service.post"^^<http://www.w3.org/2001/XMLSchema#string>             
            "service.feed"^^<http://www.w3.org/2001/XMLSchema#string>  ) ] .

3.4.1  "rel" Attribute

3.4.2 "type" Attribute

(duplicate)

    :type     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "indicates the media type of the content";

         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Content 
            :Link  ) ];
           rdfs:range <http://www.w3.org/2001/XMLSchema#string> .


  3.4.2  "type" Attribute

3.4.3 "href" Attribute

    :href     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:domain :Link;
         rdfs:label "href"@en;
         rdfs:range <http://www.w3.org/2001/XMLSchema#anyURI> .
         
3.4.3  "href" Attribute

3.4.4 "title" Attribute
  3.4.4  "title" Attribute

(duplicate)

4 The "atom:feed" Element

    :Feed     a owl:Class;
         rdfs:comment "A syndicated feed";
         rdfs:subClassOf :AtomConstruct,
                 [
             a owl:Restriction;
             owl:minCardinality "0"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :hasEntry ],
                 [
             a owl:Restriction;
             owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :author ],
                 [
             a owl:Restriction;
             owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :tagline ],
                 [
             a owl:Restriction;
             owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :version ],
                 [
             a owl:Restriction;
             owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :hasTitle ],
                 [
             a owl:Restriction;
             owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :copyright ] .
            


The "atom:feed" Element

4.1 "version" Attribute

    :version     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment " Indicates the version of the Atom specification that  the construct conforms to.";
         rdfs:domain :Feed;
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .


 4.1  "version" Attribute

4.2 "xml:lang" Attribute

    :lang     a owl:DatatypeProperty;
         rdfs:comment "the default language of the feed";
         rdfs:domain :Feed;
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .


 4.2  "xml:lang" Attribute

4.3 "atom:title" Element

(duplicate)  

    :title     a owl:DatatypeProperty;
            rdfs:domain :AtomConstruct;

           rdfs:range <http://www.w3.org/2001/XMLSchema#string> .

4.3  "atom:title" Element

4.4 "atom:link" Element

    :Link     a owl:Class;
         rdfs:subClassOf :AtomConstruct .

 4.4  "atom:link" Element

4.5 "atom:author" Element

    :author     a owl:FunctionalProperty,
                owl:ObjectProperty;
         rdfs:comment "indicates the default author of the feed";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Entry 
            :Feed  ) ];
         rdfs:range :Person .

 4.5  "atom:author" Element

4.6 "atom:contributor" Element

    :contributor     a owl:ObjectProperty;
         rdfs:comment "indicates a person or other entity who contributes to the feed";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Entry 
            :Feed  ) ];
         rdfs:range :Person .

 4.6  "atom:contributor" Element

4.7 "atom:tagline" Element

    :tagline     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "a human-readable description or tagline for the feed";
         rdfs:domain :Feed;
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .

 4.7  "atom:tagline" Element

4.8 "atom:id" Element
 4.8  "atom:id" Element

(duplicate)

The content of the Atom id element is the URI of the subject resource (atom:entry)

4.9 "atom:generator" Element
 4.9  "atom:generator" Element

    :generator     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment " indentifies the  software agent used to generate the feed, for debugging and  other purposes.";
         rdfs:domain :Feed;
         rdfs:label "generator"@en;
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .

4.10 "atom:copyright" Element
 4.10  "atom:copyright" Element

    :copyright     
	a owl:DatatypeProperty,                
	owl:FunctionalProperty;         
	rdfs:comment "a human-readable copyright statement for the feed";         
	rdfs:domain :Feed;         
	rdfs:range <http://www.w3.org/2001/XMLSchema#string> .


4.11 "atom:info" Element
 4.11  "atom:info" Element

    :info     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "conveys a human-readable explanation of the feed format itself";
         rdfs:domain :Feed;
         rdfs:label "info"@en;
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .

4.12 "atom:modified" Element
 4.12  "atom:modified" Element

    :modified     a owl:DatatypeProperty;
         rdfs:comment "the date and time at which the Entry was modified in W3 format";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Feed 
            :Entry  ) ];
         rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .

4.13 "atom:entry" Element
 4.13  "atom:entry" Element

    :Entry     a owl:Class;
         rdfs:comment "Represents an individual entry  that is contained by the feed.
                        The Atom entry id is the object's resource URI (So there is no id property) ";
         rdfs:subClassOf :AtomConstruct,
                 [
             a owl:Restriction;
             owl:minCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :hasLink ],
                 [
             a owl:Restriction;
             owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :summary ],
                 [
             a owl:Restriction;
             owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :created ],
                 [
             a owl:Restriction;
             owl:minCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :hasContent ],
                 [
             a owl:Restriction;
             owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :issued ],
                 [
             a owl:Restriction;
             owl:maxCardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :modified ],
                 [
             a owl:Restriction;
             owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :hasTitle ],
                 [
             a owl:Restriction;
             owl:cardinality "1"^^<http://www.w3.org/2001/XMLSchema#int>;
             owl:onProperty :author ] .

    :hasChild     a owl:ObjectProperty .
    
    :hasContent     a owl:ObjectProperty;
         rdfs:domain :Entry;
         rdfs:label "hasContent"@en;
         rdfs:range :Content .
    
    :hasEntry     a owl:ObjectProperty;
         rdfs:comment "an individual entry that is contained by the feed";
         rdfs:domain :Feed;
         rdfs:label "hasEntry"@en;
         rdfs:range :Entry .
    
    :hasLink     a owl:ObjectProperty;
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Entry 
            :Feed  ) ];
         rdfs:range :Link .
    
    :hasTitle     a owl:FunctionalProperty,
                owl:ObjectProperty;
         rdfs:comment " a human-readable title";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Feed 
            :Entry  ) ];
         rdfs:range :Content .

4.13.1 "atom:title" Element

(duplicate)   

4.13.1  "atom:title" Element

4.13.2 "atom:link" Element
  4.13.2  "atom:link" Element

(duplicate)

    :Link     a owl:Class;
         rdfs:subClassOf :AtomConstruct .

4.13.3 "atom:author" Element

(duplicate)
    :author     a owl:FunctionalProperty,
                owl:ObjectProperty;
         rdfs:comment "indicates the default author of the feed";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Entry 
            :Feed  ) ];
         rdfs:range :Person .

  4.13.3  "atom:author" Element

4.13.4 "atom:contributor" Element
  4.13.4  "atom:contributor" Element


4.13.5 "atom:id" Element
  4.13.5  "atom:id" Element

(duplicate)

The content of the Atom id element is the URI of the subject resource (atom:entry)

4.13.6 "atom:modified" Element

(duplicate)
    :modified     a owl:DatatypeProperty;
         rdfs:comment "the date and time at which the Entry was modified in W3 format";
         rdfs:domain  [
             a owl:Class;
             owl:unionOf  (
            :Feed 
            :Entry  ) ];
         rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .

  4.13.6  "atom:modified" Element

4.13.7 "atom:issued" Element
  4.13.7  "atom:issued" Element

    :issued     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "Issue Date";
         rdfs:domain :Entry;
         rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .

4.13.8 "atom:created" Element
  4.13.8  "atom:created" Element

    :created     a owl:DatatypeProperty;
         rdfs:comment "indicates the time that the entry was created";
         rdfs:domain :Entry;
         rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .

4.13.9 "atom:summary" Element
  4.13.9  "atom:summary" Element

    :summary     a owl:DatatypeProperty,
                owl:FunctionalProperty;
         rdfs:comment "a short summary, abstract or excerpt of the entry";
         rdfs:range <http://www.w3.org/2001/XMLSchema#string> .

4.13.10 "atom:content" Element

(duplicate)
 

  4.13.10  "atom:content" Element


5 Managing Feed State
6 Embedding Atom in Other Formats
7 Extending Atom
8 IANA Considerations
9 Security Considerations
References
Author's Address
A Contributors
B Revision History
Full Copyright Statement


Managing Feed State
Embedding Atom in Other Formats
Extending Atom
IANA Considerations
Security Considerations
  References
  Author's Address
Contributors
Revision History
  Full Copyright Statement

Change History

2004-06-11 Minor revisions - n3 valid

2004-05-22 XSLT added
2004-05-11 Format converted from Protege + RDF/XML to N3 in XHTML