- From: Christopher Welty <welty@us.ibm.com>
- Date: Wed, 29 Jun 2005 11:02:09 -0400
- To: Lars Marius Garshol <larsga@ontopia.net>
- Cc: public-swbp-wg@w3.org
- Message-ID: <OFBFBE6038.A1233A15-ON8525702F.004F3666-8525702F.00529A87@us.ibm.com>
I don't know anything about topic maps, but it sounds like from your
syntactic example:
[a] is-bankrupt(barings-bank : company)
that you have some notion of "strong typing" (aka "sorts" in logic), that
is, there are unary predicates that are somehow more essential than
others. There has been a lot of work on this in the research community,
and we are trying (through this forum) to educate the SW community about
it, not surprising that many don't know about it, or even believe it
doesn't exist.
There are a number of ways to do this. Here are three:
you can create special relations to differentiate the "essential" from
"nonessential" associations to classes:
[b] essentialType rdfs:subproperty rdf:type
nonessentialType rdfs:subproperty rdf:type
barings-bank essentialType company
barings-bank nonessentialType bankrupt
or create special classes:
[c] EssentialClass rdf:type rdf:Class
NonessentialClass rdf:type rdf:Class
Company rdf:type EssentialClass
bankrupt rdf:type NonessentialClass
barings-bank rdf:type company
barings-bank rdf:type bankrupt
Of course most non-essential classes can just be turned into relations:
[d] barings-bank rdf:type Company
barings-bank financialStatus bankrupt
These could all also be expressed in OWL, of course, but it would be a
little different.
Assuming you are interested in automatically translating the syntax of [a]
into rdf, I think [b] would be easiest to generate automatically from
syntax, [c] is not much harder (it may require two passes) and would be
my preference, as I believe it is closer to what you really mean. [d]
would probably be hard to do automatically.
I'm expecting that, in order to do translation between any two languages,
some special vocabulary will be needed in each to ensure as much of the
semantics of the "source" language is preserved. So both [b] and [c]
would require some special vocabulary to support translation.
-Chris
Dr. Christopher A. Welty, Knowledge Structures Group
IBM Watson Research Center, 19 Skyline Dr., Hawthorne, NY 10532 USA
Voice: +1 914.784.7055, IBM T/L: 863.7055, Fax: +1 914.784.7455
Email: welty@watson.ibm.com, Web:
http://www.research.ibm.com/people/w/welty/
Lars Marius Garshol <larsga@ontopia.net>
Sent by: public-swbp-wg-request@w3.org
06/29/2005 09:09 AM
To
<public-swbp-wg@w3.org>
cc
Subject
Re: How to state simple facts in RDF
* Michael F. Uschold
|
| Rdf:type is fine for many such examples.
It does seem to work, and work well, in some of the cases, I agree.
| However, it is not always such a good idea to create special
| classes/types for every such fact.
| For example:
| My car is red.
| This food tastes good.
|
| To use rdf:type food these statements requires one to create
| artificial classes/types for such notions as RedThings, or
| GoodTastingThings.
|
| One can do it, but it is not always what you want.
I agree, and the RDFTM work is one case where this isn't really what
we want, since although it works to turn
is-bankrupt(barings-bank : company) /* LTM syntax */
into
(barings-bank, rdf:type, BankruptCompany)
this causes difficulties with roundtripping back to topic maps, since
we can't then easily distinguish between types that are "real types"
and types that really represent "unary associations".
Does anyone know of other good modelling patterns for this in RDF? Or
do we need to create a special
rdftm:ArtificialClassThatIsReallyAUnaryAssociationType class?
--
Lars Marius Garshol, Ontopian <URL: http://www.ontopia.net >
GSM: +47 98 21 55 50 <URL: http://www.garshol.priv.no >
Received on Wednesday, 29 June 2005 15:02:35 UTC