2005-10-16: Work is ongoing to update the model to Atom Format 1.0 - now at atomowl.org
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)
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)
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
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.
@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." .
:AtomConstruct a owl:Class; rdfs:comment "common Atom structure" .
:Content a owl:Class;
rdfs:comment "Content";
rdfs:label "content"@en;
rdfs:subClassOf :AtomConstruct .
: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> .
: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
:Person a owl:Class;
rdfs:subClassOf :AtomConstruct .
: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
: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> .
: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> .
:value a owl:DatatypeProperty, owl:FunctionalProperty; rdfs:comment "a W3C Date-Time"; rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .
:Link a owl:Class;
rdfs:subClassOf :AtomConstruct .
: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> ) ] .
(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> .
:href a owl:DatatypeProperty,
owl:FunctionalProperty;
rdfs:domain :Link;
rdfs:label "href"@en;
rdfs:range <http://www.w3.org/2001/XMLSchema#anyURI> .
: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 ] .
: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> .
:lang a owl:DatatypeProperty;
rdfs:comment "the default language of the feed";
rdfs:domain :Feed;
rdfs:range <http://www.w3.org/2001/XMLSchema#string> .
(duplicate)
:title a owl:DatatypeProperty;
rdfs:domain :AtomConstruct;
rdfs:range <http://www.w3.org/2001/XMLSchema#string> .
:Link a owl:Class;
rdfs:subClassOf :AtomConstruct .
: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 .
: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 .
: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> .
The content of the Atom id element is the URI of the subject
resource (atom:entry)
: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> .
: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> .
: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> .
: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> .
: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)
:Link a owl:Class;
rdfs:subClassOf :AtomConstruct .
: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 .
The content of the Atom id element is the URI of the subject
resource (atom:entry)
: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> .
:issued a owl:DatatypeProperty,
owl:FunctionalProperty;
rdfs:comment "Issue Date";
rdfs:domain :Entry;
rdfs:range <http://www.w3.org/2001/XMLSchema#dateTime> .
: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> .
: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
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
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
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