[Ontology] UCDs vs ontologies?
Ed Shaya
edward.j.shaya.1 at gsfc.nasa.gov
Wed Jun 1 12:48:07 PDT 2005
Cross posting from data modeling.
Elizabeth,
I will try to answer some of your questions posted at the ivoa web site.
* How do I include objects and properties from one OWL formatted
ontology into another OWL formatted ontology? For instance, the
WhenWhere element of the VOEvent schema can "be any legal STC
expression", according to VOEvent 0.90. It would make more sense
to develop an ontology(ies) for STC and reference the classes /
properties from VOEvent than it would be to shoehorn all of STC
into the VOEvent ontology.
First you need to import the other ontology:
<owl:Ontology rdf:about="">
<owl:imports rdf:resource="STC.owl"/>
</owl:Ontology>
Then you just use them. In this case you want
http://ivoa.org/ont/STC.owl#STCEntity to be a subclass of WhenWhere. Or
you could add STCEntity in the range of hasWhenWhere.
Version 3.1 is better at working with multiple ontologies.
By the way, I am planning on working on STC.owl soon. But you are
welcome to take a first crack at it if you wish.
* *Note*: I use the suggested Protege tutorial notation for object
properties, beginning the property name with "has" or "is".
However, I use datatype properties to represent attributes, and I
simply give these properties the name of the attribute. Is this
bad practice?
I am doing essentially the same thing. Also, I am making classes begin
with a capital letter and properties (object or dataproperties) start
with a lower case letter. But I could easily be convinced to have both
start with lower case unless it is a mnemonic or a proper name.
* The above notation has brought up a problem: for instance, both
the Param and Importance classes have a value attribute. For
Param, value should be a string, but for Importance, value should
be an integer. Should I forget about naming datatype properties
after attributes and create two new datatype properties,
hasStringValue and hasIntegerValue?
a) your way.
b) One could just use string and then any number is acceptable as well.
c) One could use xsd:AnySimpleType for value and then in Param restrict
it to xsd:string and in Importance restrict it to integer.
Note that I prefer q:hasValue which takes a q:Quantity which has datum,
error, and units. Of course then one has an issue with datum.
* The Protege tutorial advises that properties should have
descriptive, human readable names. The "English Prose Tooltip
Generator" can take advantage of such property names by turning
them into specific property descriptions in documentation.
I have not seen this yet.
* There is currently no hierarchy of "is a" relationships - classes
are related by "has a" relationships instead. Is this bad
practice? Should the ontology be reorganized into a hierarchy of
concepts rather than reflecting the VOEvent schema structure?
You did good. The terms in VOEvent do have superclasses in the larger
ontology that I am working on, but these were not needed in what your
small cut. As one digs in deeper one may find one needs subclasses.
Classification may require subclass spectralClassificat which has
subclass MKClassification which has subclass MKLuminosityClassification etc.
* Technical detail - the RTML UML for Contact shows one option of
FirstName plus LastName as an alternative to Name. How do I
reflect this "!FirstName must be accompanied by LastName"? I bet
this is a rules engine thing.
Not sure, what you mean. LastName can be functional, meaning one value
is required. Beyond that one can specify the cardinality.
* Can all cardinalities or 1:N restrictions be set in the rules
engine, or is there a better way to do that?
In the class menu, right click on the property and choose the
cardinality. At least that is how it is in 3.1.
* Is there any reason for or against making any or all of these
classes disjoint?
Not here. Be careful with disjoint. It can blow up the size of the
ontology with little benefit. A case where setting classes as disjoint
is useful is to explicitly say that you will not tolerate a galaxy
instance being classified as elliptical in one place and as a spiral in
another. You are then saying that we can not go on until this conflict
is resolved.
Ed
Elizabeth Auden wrote:
>> On the other hand, we're told that the role of UCDs is distinct from
>> that of ontologies. An ontology is an (attempt) at expressing the
>> complete range of some knowledge domain. Astronomy is a big subject
>> - its ontology will be big.
>
>
>> Personally, I think the VO community will need to develop several
>> separate ontologies over time as well as several separate glossaries
>> of UCDs or UCD-like constructs. It is not obvious that a glossary of
>> UCDs for tabular convenience is equivalent to a glossary of UCDs for
>> VOEvent convenience. An ontology can afford to be large and unwieldy
>> to reach its goal of being complete and accurate.
>
>
> Incidentally, I've posted a first go at a VOEvent ontology (OWL-DL
> format) on the VOTech wiki at
> http://wiki.eurovotech.org/bin/view/VOTech/VoEventOntology. Any
> comments on the structure, concepts, and coverage of this v0.000000001
> ontology would be appreciated.
>
> cheers,
> Elizabeth
>
More information about the semantics
mailing list