Copyright © 2010 Samer A. Abdallah and Bob Ferris |
|
This work is licensed under a Creative Commons Attribution License. This copyright applies to the Ordered List Ontology Specification and accompanying documentation in RDF. Regarding underlying technology, the Ordered List Ontology uses W3C's RDF technology, an open Web standard that can be freely used by anyone.
The Ordered List Ontology Specification provides basic concepts and properties for describing ordered lists as semantic graph. This document contains a RDFa description of the Ordered List Ontology as proposed by Samer A. Abdallah and some additional information and examples.
The template of this specification is derived from the FOAF Vocabulary Specification, which was created by Dan Brickley and Libby Miller, and the Music Ontology Specification, which was created by Yves Raimond. It was modified and extended by Bob Ferris. Furthermore, a modified and extended version of Danbri's SpecGen version was used to generate most of the RDFa statements of the Ordered List Ontology for this specification (see here for SpecGen version 6 by Bob Ferris).
This document is created by combining the RDFS/OWL machine-readable Ordered List Ontology with a human-readable HTML representation that includes RDFa annotations. Future versions may incorporate multilingual translations of term definitions. The RDF/XML version of the specification is also available directly from the namespace URI. RDF/N3 representations could be access via the links above.
The authors welcome comments on this document, preferably via the author's email addresses.
The olo:OrderedList concept as graph with relations:
An a-z index of Ordered List Ontology terms, by class (categories or types) and by property.
Classes: | OrderedList | Slot |
Properties: | index | item | length | next | ordered_list | previous | slot |
A graphic of a simple example of an use case of the Ordered List Ontology - a music playlist:
RDF/Turtle representation of a simple example of an use case of the Ordered List Ontology - a music playlist (see also RDF and N3 for downloadable representations of this example):
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix olo: <http://purl.org/ontology/olo/core#> . @prefix mo: <http://purl.org/ontology/mo/> . @prefix ex: <http://example.org/> . ex:FunkyPlaylist a olo:OrderedList ; dc:title "Funky Playlist"^^xsd:string ; dc:description "A playlist full of funky legends"^^xsd:string ; dc:creator <http://foaf.me/zazi#me> ; olo:length 2 ; olo:slot [ olo:index 1 ; olo:item ex:SexMachine ] ; olo:slot [ olo:index 2 ; olo:item ex:GoodFoot ] . ex:SexMachine a mo:Track ; dc:title "Sex Machine"^^xsd:string ; dc:creator <http://dbpedia.org/resource/James_Brown> . ex:GoodFoot a mo:Track ; dc:title "Good Foot"^^xsd:string .
The whole music playlist is an olo:OrderedList* instance and could be annotated with further
editoral metadata, e.g. a title, a description and a creator. Each track of the music playlist is embedded into an
olo:Slot instance. The music playlist has a fixed length (olo:length) and each slot has a
fixed index (olo:index) in the ordered list it belongs to.
*) Of course, one could also sub class olo:OrderedList for a more specific playlist concept
There is a need to describe typed ordered lists or sequences of information resources. The existing
approach in the RDF vocabulary, rdf:Seq, has some drawbacks regarding defining explicitly a range for items of a sequence and to query them efficiently with SPARQL, because every slot
of a sequence is related by a separate property of the form rdf:_N, where N is a positive integer number, e.g. rdf:_1 (cf. RDF Vocabulary Description Language 1.0: RDF Schema and RDF Semantics ). That’s why, I co-designed the
Ordered List Ontology according to a proposal made by Samer A. Abdallah. This ontology should overcome the
drawbacks of the existing ordered list modelling approach by enabling more semantics to describe sequences of information resources.
As one can see in graphic 'olo:OrderedList concept as graph with relations', the Ordered List Ontology consists of two concepts - olo:OrderedList and olo:Slot.
That means an ordered list is a composite of all slots, which are part of this ordered list (related by the property olo:slot). Although, the Ordered List Ontology is OWL based, the ontology also provides "backward"
compatibility to the RDFS world.
The initial and primary access method to single slots in an ordered list should be olo:index, because this
property represents the fixed index of a slot in an ordered list. Thereby, the property olo:length relates
to the length of an ordered list, the number of included slots. The secondary access method is its (currently) optional iterator olo:next as shortcut to the next slot in the list. The items, which are arranged in an ordered list, are
associated by the property olo:item to a slot.
On the basis of the ordered list concept defined in the Ordered List Ontology one can define more specific ordered list definitions, e.g. for media playlist (see the Play Back Ontology) or ranked recommendations (see the Recommendation Ontology).
TODO
TODO
TODO
This specification serves as the Ordered List Ontology "namespace document". As such it describes the Ordered List Ontology and the terms (RDF classes and properties) that constitute it, so that Semantic Web applications can use those terms in a variety of RDF-compatible document formats and applications.
This document presents the Ordered List Ontology as a Semantic Web or Ontology. The Ordered List Ontology is pretty simple, pragmatic and designed to allow simultaneous deployment and extension. The Ordered List Ontology is intended for widescale use, but its authors make no commitments regarding its suitability for any particular purpose.
The Ordered List Ontology is identified by the namespace URI
'http://purl.org/ontology/olo/core#
'. Revisions and
extensions of the Ordered List Ontology are conducted through edits to this document,
which by convention is accessible in the Web via the namespace URI.
For practical and deployment reasons, note that we do not
update the namespace URI as the vocabulary matures.
The evolution of the Ordered List Ontology is best considered in terms of the stability of individual vocabulary terms, rather than the specification as a whole. As terms stabilise in usage and documentation, they progress through the categories 'unstable', 'testing' and 'stable'. Older terms are marked 'archaic' which allows the possibility of older forms to become modern again.
The Ordered List Ontology introduces the following classes and properties. There is a link at the top of this document to the RDF/XML and RDF/N3 versions.
Classes: | OrderedList | Slot |
Properties: | index | item | length | next | ordered_list | previous | slot |
Status: | stable | |
---|---|---|
Properties include: | length slot | |
Used with: | ordered_list | |
Sub class of | owl:Thing | |
Restriction(s): | The property olo:length must be set exactly 1 time(s) | |
OWL Class | ||
RDFS Class |
[#] [back to top]
Status: | stable | |
---|---|---|
Properties include: | ordered_list next index item previous | |
Used with: | next slot previous | |
Sub class of | owl:Thing | |
Restriction(s): |
The property
olo:ordered_list must be set at most
1 time(s) The property olo:next must be set at most 1 time(s) The property olo:previous must be set at most 1 time(s) The property olo:index must be set exactly 1 time(s) | |
OWL Class | ||
RDFS Class |
[#] [back to top]
Status: | stable | |
---|---|---|
Domain: | Slot | |
Range: | xsd:positiveInteger | |
RDF Property | ||
Datatype Property | ||
Functional Property |
[#] [back to top]
Status: | stable | |
---|---|---|
Domain: | Slot | |
RDF Property |
[#] [back to top]
Status: | stable | |
---|---|---|
Domain: | Ordered List | |
Range: | xsd:nonNegativeInteger | |
RDF Property | ||
Datatype Property | ||
Functional Property |
[#] [back to top]
Status: | stable | |
---|---|---|
Domain: | Ordered List | |
Range: | Slot | |
Has inverse property | has ordered list | |
RDF Property | ||
Object Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Slot | |
Range: | Slot | |
Has inverse property | has previous | |
RDF Property | ||
Functional Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Slot | |
Range: | Ordered List | |
Inverse property of | has slot | |
RDF Property | ||
Functional Property |
[#] [back to top]
Status: | testing | |
---|---|---|
Domain: | Slot | |
Range: | Slot | |
Inverse property of | has next | |
RDF Property | ||
Inverse Functional Property |
[#] [back to top]
The description of the terms in the Ordered List Ontology 'dictionary' make reference to classes and properties elsewhere. This section of the Ordered List Ontology specification provides a placeholder reference for any Ordered List Ontology mention of externally defined terms. For example, sometimes we might say that Ordered List Ontology property has a domain or range of an externally defined class, or that a Ordered List Ontology class is a sub-class of an external class, or 'disjoint with' such a class (ie. has no common members). Such claims help fix the intended meaning of Ordered List Ontology terms in relationship to other 'peer' vocabularies. Currently, the Ordered List Ontology sub classes:
Each term in the Ordered List Ontology is annotated with properties from the SemWeb Vocab Status Ontology
Note that this mechanism is itself somewhat experimental and evolvin. The definitions of 'stable', 'unstable', 'archaic' and 'testing' cannot be defined as global absolutes, but only in relationship to the practices, expectations and social structures around some vocabulary. For their use in the Ordered List Ontology, future versions of this specification could usefully offer more detail about what to expect from a term labelled 'stable'.
I would like to thank very much Samer A. Abdallah (!), Yves Raimond, Kurt Jacbson and Aldo Gangemi to help to establish this multiple purpose ordered list ontology. Furthermore, Dan Brickley and Libby Miller to provide the basis for this specification.
========================= Version 0.72 (July 2010) ========================= * MODIFIED: removed owl:ObjectProperty type and owl:inverseOf from olo:item * MODIFIED: olo:Slot - removed restriction on olo:item ========================= Version 0.71 (July 2010) ========================= * MODIFIED: added owl:DatatypeProperty to rdf:type of olo:index * MODIFIED: added owl:DatatypeProperty to rdf:type of olo:length * REMOVED: anonymous defined inverse properties from olo:index and olo:length ========================= Version 0.7 (July 2010) ========================= * MODIFIED: olo:OrderedList and olo:Slot now sub class of owl:Thing * MODIFIED: olo:OrderedList and olo:Slot now of the type rdf:Class and owl:Class * MODIFIED: every property is now also of the type rdf:Property ========================= Version 0.6 (June 2010) ========================= * CHANGED: base URI to http://purl.org/ontology/olo/core# * FIXED: bad typo of owl:inverseOf * ADDED: olo:previous as explicit inverse property of olo:next * ADDED: olo:ordered_list as explicit inverse property of olo:slot * MODIFIED: correct setting of restrictions now (used owl:Restriction) * REMOVED: owl:someValuesFrom from olo:length + olo:index ========================= Version 0.5 (June 2010) ========================= * MODIFIED: olo:item - removed rdfs:range. * MODIFIED: dc:date - used xsd:dateTime datatype. * MODIFIED: changed foaf:maker to dc:creator. * REMOVED: DCTerms and FOAF from owl:imports. ========================= Version 0.4 (June 2010) ========================= * MODIFIED: olo:length - back to rdfs:range xsd:nonNegativeInteger. * MODIFIED: olo:length + olo:index now with owl:someValuesFrom. ========================= Version 0.3 (June 2010) ========================= * ADDED: olo:next - to associate the next slot of a slot in an ordered list. * MODIFIED: olo:length - to enable a single length association to an ordered list. * MODIFIED: olo:length - rdfs:range xsd:positiveInteger. * MODIFIED: olo:index - to enable a single index association to a slot in an ordered list. * MODIFIED: anonymous inverse property of olo:slot to rdfs:type owl:FunctionalProperty. ========================= Version 0.2 (June 2010) ========================= * MODIFIED: olo:index - rdfs:range to xsd:positiveInteger * MODIFIED: olo:length - rdfs:range to nongativeInteger ========================= Version 0.1 (June 2010) ========================= * ADDED: olo:OrderedList - a concept for ordered lists * ADDED: olo:Slot - a slot in an ordered list * ADDED: olo:slot - associates an ordered list to its slots * ADDED: olo:length - the length of an ordered list * ADDED: olo:index - an index of a slot in an ordered list * ADDED: olo:item - an item of an slot in an ordered list