The OWL 1.0 Guide
gives a small ontology example. The RDF/XML+OWL statements are included at the end
of this document. An exact translation in the
(FT) notation is proposed now,
accompanied by an UML translation from the authors of the example (this
UML translation is incomplete: it does not show that the three relations
(or "properties") specialize a same relation called vin#hasSubArea
;
onthe other hand, the "part-of" meaning conveyed by the black arrows is left
implicit in the RDF/XML source).
This ontology may make sense as a data model but not for knowledge
representation, sharing and retrieval retrieval purposes (which are the
purposes of RDF/XML and OWL; conversely, they is no much point in translating
data models in RDF/XML since the data will still remain accessible only by
business-to-business purpose-built wrappers).
/* '>' means "has for subtype", '^' means "has for type", '-' means "has for inverse", '(*,*)' means "from anything to anything", '<-' means the inverse relation is functional */ vin#ProductionArea > vin#Country vin#Region vin#Vineyard; vin#hasSubArea (*,*) ^ owl#TransitiveProperty, - vin#subAreaOf, > vin#hasRegion vin#hasSubRegion vin#hasVineyard; vin#hasRegion (vin#Country <- vin#Region) - vin#regionOf; vin#hasSubRegion (vin#Region<- vin#Region) - vin#subRegionOf; vin#hasVineyard (vin#Region<-vin#Vineyard) - vin#vineyardRegion; /* Examples of application: (':' means "has for instance"): vin#Country: vin#France vin#Italy; vin#Region: vin#Aquitaine vin#Roussillon; vin#Vineyard: vin#Chateau_Margaux; [vin#Chateau_Margaux, vin#vineyardRegion: vin#Aquitaine]; */ |
The existence of inverse relations and the presence of "has" or "of" in a relation name were probably prompted by the inadequacies of the RDF/XML syntax. They are not required in any other textual knowledge representation format, nor in a graphical format or for a model. Inverse relations only increase the complexity of the model and also logical inferencing. The presence of "has" or "of" in the identifiers contradicts the usual reading conventions of semantic networks, and make the use of these identifiers in other notations (e.g. controlled languages or natural languages) more difficult. The use of the intercap style is also a bad lexical decision with respect to this last point. Hence, the following version.
vin#production_area > vin#country vin#region vin#vineyard; vin#sub_area (*,*) ^ owl#transitive_property, > vin#region vin#sub_region vin#vineyard; vin#region (vin#country <- vin#region); vin#sub_region (vin#region <- vin#region); vin#vineyard (vin#region <- vin#vineyard);
The above ontology schema is extremely restricting (it only permits to state sub_area relations), semantically shallow and hard to extend or re-use. The following version follows a classic and scalable approach, e.g. "wine production" is a process and processes have many well-known simple relations associated to them (place, object, time, duration, ...) which people may use when they want to without introducing new objects (which would defeat knowledge re-trievablility and re-use). Dividing the sub_area relation into three subtypes also serves no purpose; using a simple partOf relation is no more ambiguous (the advantage is that many notations and systems have shortcuts to enter, present or handle part-of relations).
vin#location > vin#country vin#region vin#vineyard; vin#production < vin#process; vin#wine < vin#physical_object; vin#object (vin#process,vin#liter_of_wine); vin#place (vin#process,vin#location); vin#time (vin#process,vin#time); vin#part (vin#location,vin#location) ^ owl#transitive_property; /* Examples of application ('p' means "has for part"): vin#France < vin#country, p vin#Aquitaine; vin#Aquitaine < vin#Region, p vin#Chateau_Margaux; [some vin#production, vin#place: vin#Chateau_Margaux, vin#time: 2003, object: some vin#wine]; */
Although easier to connect to other ontologies, until this is done,
the above version is still semantically shallow and not re-usable by
automatic agents (unless they are purpose-built). Knowledge in isolation
is just data. Since all the classes of this ontology are quite general and
can be found in natural language ontologies, connected with many other classes,
it is best for knowledge representation, sharing and retrieval purposes
to use these concepts directly. To understand it, consider the following statements
and click on the used classes to access related classes and statements in our
extension, correction and application of WordNet.
user vin http://www.vin.com ; //permits to enter the following statements in WebKB
vin#Chateau_Margaux < #region, l #Aquitaine;
//There is currently no Chateau_Margaux in our extension of WordNet, so we have
//to add it before entering the next statement. Unless this document has already
//been parsed, you have to ask WebKB to parse the above statement (and add it to
//the knowledge base) by clicking here if you then want to browse from the
//category vin#Chateau_Margaux via the hyperlink below.
[some #production, pm#place: vin#Chateau_Margaux, pm#time: 2003,
pm#object: (some #Bordeaux_wine, #volume: 20000 #liter)
]; //according to the user "vin"
Classes (translation in FT: vin#ProductionArea
> vin#Country vin#Region vin#Vineyard
)
Relations