OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

topicmaps-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: [topicmaps-comment] OpenCyc and Topic Maps: Progress Report


W. Eliot Kimber wrote:

> I spent the weekend coming up to speed--I think I now have a basic idea
> of how Cyc represents knowledge--I can at least create simple constants,
> associations, and rules and then ask simple questions about them and get
> the expected answer. 


Eliot, in reading through your message you come to many of the same
conclusions as I did in my earlier Cyc parser (which to those unaware
resulted in a posting on a now defunct web site of a set of PSIs for
each of the Cyc upper ontology constants). Detailed responses follow.


> Unless I've missed something, there is clearly a direct mapping between
> Cyc's knowledge representation and topics, in particular:
> 
> - Cyc "constants" correspond to topics, that is, reified things about
> which assertions can be made. Topic characteristics become other
> constants to which the base constant is associated. 


Yes, I feel they are almost identical concepts. Additionally, it should
be possible to make statements about Cyc assertions as well, i.e., since
each assertion in Cyc is (or can be) reified as a constant this would in
any conversion also become a PSI, so this doesn't seem to be an issue.


> - Cyc "assertions" correspond to topic associations, to the degree that
> they relate topics together.  Any topic map association can be
> completely modeled as one or more Cyc assertions, including roles and
> constraints on members.


Agreed, though I'm less clear on roles and constraints. My Ceryle parser
parses most of the Cyc grammar into an XTM document, then passes that
to TouchGraph for visualization. I'm for the most part happy with the
result.

The one issue I wanted to figure out a better solution to (which I'm not
certain is better in Cyc either) is how to visualize directionality in
the graph. But since directionality is not an obvious product of any
arbitrary assertion/association (and is bound by the semantics of each
relation in an almost intuitive way), I preferred to "leave that until
later."


> - Cyc's "isa" and "genls" (generalizes) assertions directly correspond
> to the subclass and instance-of associations in topic maps (no
> surprise).


Yes, I wrote specific methods for each since they were so common.


> - Cyc's concept of "microtheory" (bounded context) seems to correspond
> to scope (although it's not yet 100% clear to me that scope exactly
> matches this concept or is the best way to represent it). In particular,
> microtheories scope assertions, which can only be represented indirectly
> in topic maps by setting the scope on association role members. It
> probably comes to the same thing but the mapping might not always be
> obvious to the casual observer.


This was very much a grey area to me. Not only (at the time) was I 

unclear on the definition of a microtheory, but absent a formal model
of topic maps it was difficult to see how this should be mapped.


>>From this it seems clear that there should be a direct mapping from
> topics and associations to constants and assertions within Cyc, although
> I'm sure there will be some subtle problems of exactly how to map
> certain topic map constructs. This would then enable Cyc to reason about
> the topic map and, possibly, further analyse occurrences of topics in
> the input topic map in order to learn more (but I have no idea how much
> of the Cyc natural language features are exposed in the OpenCyc
> project). 


This is still a mystery to me, and will remain so until someone on

that project publishes the XML generator tools.


> In addition, Cyc constants would make very good public subjects. In any
> case, fully useful import of topics into Cyc would require mapping the
> subjects in the topic map to the corresponding subjects in Cyc. Also,
> Cyc appears to have a pretty robust mechanism for talking about the
> temporal nature of things, so it might offer a ready solution to the
> problem of temporal scoping.


Yes, I had published the list of PSIs for the Cyc upper ontology. Once
I have access to the ontology again in XML I'll do this once more. In
the interim I've developed my own, much more limitied in scope ontology

to model what authors might want (since my project is focused on 

authoring and not all of "common sense" as is Cyc).

For temporality I've opted to develop an entirely different markup
which I call the XML Sequence Map Language (XSM). It is informed by
ideas you and I have talked about, as well as HyTime (no surprise).
A month or so ago I began investigating outlining markup languages
but decided XSM was more the direction I wanted to go, essentially
a markup language designed to work alongside XTM, with XTM mapping
things by topic, XSM temporally along n-dimensions. I don't think
this can be done sensibly within XTM, though I'd be happy to entertain
any ideas you have. I'd considered establishing PSIs for some basic
temporal relations, etc. but the XTM markup really didn't suit. I'm
not sure the topic map semantics really do either.


> It's also clear that even the subset of the Cyc KB released in OpenCyc
> reflects a huge body of very deep thought about how to classify and
> relate things--the range of subtle distinctions of association and
> typing within Cyc is quite astounding. This thinking could certainly be
> of great value to anyone developing a complex topic map that models more
> than some very narrow subject domain.


Yes, though it also occurs to me that after working on my own ontologies
that there at times must be made an almost arbitrary set of decisions on
exactly how any concept or relation is defined and modeled, i.e., that
human language is slippery enough that no ontology is really on very
solid ground, other than its own definitions. I'm sure that many in the
CG community would agree. You draw a line in the sand and define things
from there. Nothing comes to you a priori.

 
> Likewise, it should be possible to export or expose some or all of a Cyc
> database as a topic map, although I'm not entirely sure what value that
> would have in practice (it might have value for interchange of knowledge
> bases between disparate expert systems, but I can't really see using a
> generic topic map engine in any useful way on such a topic map when the
> Cyc engine is already optimized for that sort of processing). As the Cyc
> ontology defines everything within the KB all the way up to "thing", it
> must be possible to generate a topic map that captures all the
> information in the KB without loss. But I find that prospect much less
> interesting than the prospect of importing topic maps into Cyc in order
> to then use Cyc to reason about the topic map.


Hmm. I see your point. I was initially only interested in Cyc only as a

source of PSIs for a brand-new, almost semantically empty landscape, not

for the possible inferencing it might provide. I still to a large degree
see Cyc's value in the topic map world that way. I think it'd be a really
interesting project to develop an inferencing engine based on a topic
map model, but it's not my project. As you say, it's probably a lot
more sensible to "simply" import topic maps into the existing OpenCyc
system, and since both OpenCyc and most topic map engines are in Java,
this is an area ripe for exploration. Again, not *my* project though.


> My next task is to experiment with importing topic maps into OpenCyc.
> Given that OpenCyc provides a Java API it should be relatively easy to
> integrate any Java-based topic map engine with it (e.g., TM4J). The real
> challenge will be mapping the input topic map's public subjects to
> existing Cyc constants and figuring out what the mapping conventions
> should be.


oops. I guess we're thinking alike -- should have read ahead. Yes,
this sounds reasonable. I look forward to hearing what you come up
with. Perhaps I'll be able to add inferencing to my project after all...

The one thing I never tackled was Cyc variables, and how to handle
slots (or arguments/characteristics/parameters). If you figure out
a decent way to manage that, I'd be most appreciative.

Murray

......................................................................
Murray Altheim                  <http://kmi.open.ac.uk/people/murray/>
Knowledge Media Institute
The Open University, Milton Keynes, Bucks, MK7 6AA, UK

      If it wants to be a global power and a player in the
      Atlantic alliance, Europe has to get back into the
      business of making war. -- Newsweek Magazine, June 3, 2002



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC