[Top] [All Lists]

[ontolog-forum] SKIF-Protege conversion

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Patrick Cassidy <pcassidy@xxxxxxxxxxxxxxxx>
Date: Wed, 14 Jan 2004 16:53:33 -0500
Message-id: <4005BA5D.8070004@xxxxxxxxxxxxxxxx>
Re: Importing SKIF ontologies into Protege.    (01)

The program that imports a SKIF file into Protege has been
developed to the point where others can try using it, but it
is still in a crude state.  at present it is intended only to 
illustrate how SKIF files could be represented in Protege, to
determine whether this is  useful tool.  If there is sufficient
positive feedback, I will try to add to the functionality of the
program, but time is now very restricted, as I have other projects
     I would like to know from each of you if (1) having a Protege
visualization is helpful in your evaluation of suggested content, or
in helping you to add content; and (2) if so, what additional
features would you feel are required to suit your purposes.
We have already discussed the need to re-export Protege files
into SKIF format, and that is a subject for discussion.  Since it
will take me (a novice to Java and to Protege plugin development)
probably over two months full time, this feature will
not be available in the immediate future. (3) would you like to
set up a session to use the Invoice ontology as a sample ontology
for learning how to use Protege?  I will conduct a session by
teleconference if anyone wants to.  At the end of this note there
is a paragraph on how to use the instances in the ontology
developed from Adam's suggested content, as a practice testing
ground.    (02)

The preliminary version of the Protege plugin which converts
SKIF-format ontology files into Protege is available at:
        ftp://micra.com/ontolog/skif_tab.jar    (03)

To use this plugin, the "jar" file (Java archive) should be added
to the "plugins" directory which is in whatever base directory
your Protege program runs from. (the default is Protege-2000).
Using it to import a SKIF file requires that you start with a
Protege ontology that has certain classes and relations already
defined.  The base ontology in that format is called "SKIFcore"
and can be obtained as the WinZip file containing the three
Protege text-format files:      
The extracted files should be added to the Protege base directory.
When you start Protege you can open this skeletal ontology by
clicking "project" and then "open", and selecting SKIFcore.    (04)

The SKIf tab can then be loaded by clicking "project", then
"configure", and checking the SkifTab box, and "OK".  After
a short loading time, the SKIF tab should appear as the rightmost
tab in the set of tabs, labeled "SKIF utilities".  IF you click that
tab, you will see a set of buttons and a report panel.  Some of the
buttons and some of the choices on the menus brought up by
clicking the first two buttons are at present either diagnostics,
dummies, or still functions under development.  The "Import a SKIF
file" button, however, should work to import a SKIF-format file,
provided that it is organized into blocks of related propositions,
as is the SUMO version 1.5 text file.  More detail about conversion
of SKIF to SUMO can be found in the file "SKIFProt.doc" (a WinWord
file) at:
If anyone has trouble reading WinWord files, I will post or send a
text version.    (05)

      The format of the original SUMO version 1.55 file had a few
irregularities, and some of those were adjusted to allow proper
importation.  That slightly modified file is at:
A few statements with irregular format were left deliberately as is,
to generate error messages when the file is input, for illustrative
purposes.    (06)

When you click the "Import a SKIF file" tab,  you can enter the name
of a file to import, and if that space is left blank, the default file
name "testin.kif" is used.  The file supplied, which can be used to
view the importation process, is available at:
(if the corresponding text file "testin.kif.txt" is downloaded, be
sure to rename it "testin.kif" and put it in the prote'ge' base
directory).  This file contains the data from SUMO version 1.55,
to which have been appended the first group of propositions and
axioms suggested by Adam Pease to begin construction of the Invoice
ontology.  These propositions and axioms have been reorganized and
supplemented so that they fit the grouping format used in SUMO 1.55,
which allows them to be imported with the SKIF utilities.
        If you try the importation using this file, you will see a
fairly large number of diagnostic statements generated to the report
pane.  Only those labeled "**ERR** should be of concern to anyone
trying to import a file - such statements should indicate that the
parser does not recognize the format of the input statement. This
can be caused by an error in the format of the input statement,
or a limitation of the parser.  In the future, a separate error
report should be generated.  Unless there is a serious programming
error (usually a null pointer), the importation should complete with
whatever data can be properly interpreted.  Unbalanced quotes
will also cause a program crash.  (Note that the "parser" is not
created by using a grammar with regular patterns, but is composed of
strictly ad hoc procedures to handle specific components of a
SKIF file.  - there is no grammar file).    (07)

     The Protege database generated by importing the SUMO + Invoices
text file "testin.kif" is available as a WinZip file containing the
three SKIN0001 Prote'ge' files:
        http://micra.com/ontolog/skiftab/SKIN.ZIP    (08)

    The Prote'ge' database that represents SUMO version 1.55 and does
not include the statements from the Invoice extensions is SUMO155k.    (09)

Try Out the Invoice Ontology
        In this Protege ontology SKIN0001, the instances of CognitiveAgent, 
Buying, Selling, Address and FinancialTransaction
which are defined in the proposed Invoice ontology example
will be found by clicking the "Instances" tab and selecting the
appropriate class.  As mentioned, the links between these instances
are not created by the present version of the import program, but
for those new to Protege it will be a useful exercise to try
creating the links specified in the KIF file - e.g. create the
"address" link between JerryBuilderPLC (an instance of CognitiveAgent)
  and "MarshLane" (an instance of Address).  One does this in the
"instances" window, by selecting (or searching for) the class
cognitiveAgent and then the instance of the class JerryBuilderPLC
that one wants to relate to other instances.  Then you have to find,
e.g. the "address" widget in the right-hand pane, click on "+" to
add an address, and you will be presented with the only two instances
of address in the database.  Select the correct address (if the
correct address isn't in the database, you can create it by going
back to the "address" slot widget and clicking the "C" button.    (010)

     Likewise, you can try to create the "located" link between 
MarshLane (an instance of address) and NowhereFolk (an instance
of City).  In this case, when you go to the Address class and
select the MarshLane instance, then move the slide bar on the
right hand pane down until you find the "Located" slot widget, if
you then click the "+" button on the "Located" widget, you will
see the whole hierarchy for "Object" because the domain 2, the
instance of location, can be any Object.  To find the one you
want you have to search for City in the search box.  When City
is selected, you will see existing instances of city that you
can select from.    (011)

     As mentioned above, if and when the import program is extended,
the relations between instances that are specified in the SKIF
file will be automatically entered into the Prote'ge' database.
That is not yet done, as this version is only a preliminary demo
to show where different logical elements from a SKIF file
would appear in Prote'ge'.    (012)

    Pat    (013)

Patrick Cassidy    (014)

MICRA, Inc.                      || (908) 561-3416
735 Belvidere Ave.               || (908) 668-5252 (if no answer)
Plainfield, NJ 07062-2054        || (908) 668-5904 (fax)    (015)

internet:   cassidy@xxxxxxxxx
=============================================    (016)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (017)

<Prev in Thread] Current Thread [Next in Thread>