On May 22, 2007, at 8:04 AM, [EMAIL PROTECTED] wrote:
I have changed the title of the mail, since the discussion has
moved away from the BMC Bioinformatics paper.
First of all, RDF and OWL have no special features for n-ary
relations (RDF reification is not practical for that), and in my
opinion there is now way that this will change at this point in
time. Introducing such features would break the basic triple model,
and it seems quite unrealistic to me that such a feature will be
introduced to OWL or RDF in the foreseeable future. We should try
to make the best of what we have in RDF and OWL, and I think that
with some basic, good design choices, the problems might probably
be far less severe than it has been portrayed in the recent
discussion.
I also cannot agree that the OWL design patterns described earlier
are 'cheating'. Almost every relation can also be viewed as an
entity that is comprised of two parts or participants. In most
cases, both the 'relation view' and the 'entity view' seem equally
plausible to me, and I cannot see why the 'relation view' should
win by default.
I think it would be instructive if we would try to go through some
real examples where n-ary relations and temporal indexing seem to
be necessary, and try to formulate it in standard OWL. Let's try to
talk through clear examples and not through references to the
history of formal logics -- that would be better understandable to
most readers of this mailing list (me included). Then we can
compare different approaches and try to find the one that is the
most intuitive, consistent, flexible and OWL-DL-compatible.
I will try to express the examples in AFO (http://esw.w3.org/topic/
HCLS/AFO_Foundational_Ontology), a very simple ontology that
distinguishes objects, processes and qualities. Objects and
processes can have 'full temporal parts' that are made up of the
whole object at a certain timespan ('lifetime'). Qualities have the
same lifetime as the objects or processes they inhere in.
Organism has_feature SOME (Temperature_Feature THAT
has_temporal_extent VALUE temporal_extent_1 AND
has_state SOME (has_magnitude VALUE 37 AND has_units VALUE
degrees_C))
Similar statement in AFO (on the instance-level, just because it is
easier to write):
-----
<Organism> <has_temporal_part> <Organism_at_timespan_1> .
<Organism_at_timespan_1> <has_quality> <temperature_quality> .
<temperature_quality> <has_value> "37" .
-----
Protein that has_feature SOME (Location_Feature THAT
has_temporal_extent VALUE temporal_extent_1 AND
has_location SOME cytoplasm)
In AFO:
-----
<Protein> <has_temporal_part> <Protein_at_timespan_1> .
<Protein_at_timespan_1> <located_in> <cytoplasm> .
-----
Why not cytoplasm_at_timespan_1?
cheers,
Matthias Samwald
----------
Yale Center for Medical Informatics, New Haven /
Section on Medical Expert and Knowledge-Based Systems, Vienna /
http://neuroscientific.net
.
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger