[Swoop] [protege-owl] Testing metaclasses in beta Protege-OWL 3.2 vs SWOOP 2.3

Bernard Vatant bernard.vatant at mondeca.com
Tue Oct 25 10:04:28 EDT 2005


Hello Protégé-ans and Swoop-ers

Since you had the rich idea to release at about the same time beta versions at about the
same time, I took the opportunity to shake the tools using a ITM test ontology, which
happens to use explicit meta-classes. For some background on meta-classes in Mondeca ITM
ontologies, see e.g. [1] and [2] (the latter in French, unfortunately, english version
long overdue).
Just an example of why and how we use metaclasses. Basically, ITM meta-model is
topic-map-ish : it uses topics, associations and roles. Both topic classes and association
classes are represented in OWL by classes, but the system needs to know which is which,
and morever it often needs some extra technical information, such as "the association type
A is hierarchical, the parent role type is R1 and the child role type is R2". To store
this information, we consider classes and association types, as well as role types, as
instances of respective subclasses of "ITM Object", with specific attributes. Similar kind
of treatment for properties.

In a nutshell, every instance of owl:Class, owl:ObjectProperty and owl:DatatypeProperty in
the domain ontology is also an instance of some subclass of ITM Object. For example you
have :

(1) itm:Class_cl		rdfs:subClassof		itm:ITM_Object
(2) onto:Person 		rdf:type			owl:Class
(3) onto:Person		rdf:type			itm:Class_cl

That is as OWL-Fullish as can be, yes :)

Various versions of Protégé, including the latest ones, had never been much happy with
that kind of stuff. In some cases the import parser would crash, in some cases not, you
would import ontologies including such features, but not be able to edit them, and when
you would save the project and re-open it, the specific meta-classes would be gone, that
is, you would not have (3) any more. Specific examples below ...

So, six months ago, I migrated to SWOOP 2.2 which had no problem with that, the two types
could be handled in the same ontology, although you had to manage (2) under the "Classes"
tab, and (3) under the "Individuals" tab. Actually in the SWOOP RDF file the two
descriptions were separated, such as :

(2)
<owl:Class rdf:about="http://www.mondeca.com/system/onto#Person">
  ...
</owl:Class>

and later on ...

(3)
<rdf:Description rdf:about="http://www.mondeca.com/system/onto#Person">
  <rdf:type>
    <owl:Class rdf:about="http://www.mondeca.com/system/basicontology#Class_cl"/>
  </rdf:type>
</rdf:Description>

This kind of things was imported OK by Protégé 3.1, and also 3.2 as far as I can see, but
with the already mentioned effect that when you save the project, you keep (2) but lose
(3).

In SWOOP 2.3, the syntax has changed, the two above declarations are collapsed into a
single one.

  <basicontology:Class_cl rdf:about="&onto;Person">
    <rdf:type rdf:resource="&owl;Class"/>
    ...
  </basicontology:Class_cl>

I got a bit nervous on how Protégé would read that. And clearly it does not like it *at
all*. Import crashes ...

Bottom line of all that : interoperability of OWL-Full files is really a headache, so a
sensible thing to do is to keep up managing (2) and (3) in different files, a "regular"
ontology and a "meta" ontology (the latter for meta-classes), each of them OWL-DL ...
which I also tried in this simple case, and everyone seems happy with that. See the
examples, both Full and DL, with SWOOP and Protégé syntaxes, I just uploaded at
http://www.mondeca.com/system/test/

Unfortunately, splitting in "regular" and "meta", possible in this simple example, is not
always possible in more complex cases, because we have e.g. properties of which domain is
a regular class and range a meta-class. For example we define in the "Publishing"
ontology, for a given index profile, which indexing properties are to be used in the index
generation. For example : "This is the profile for index of authors : use the value of
"author" property."

The generic property used to express this is pub:Indexed_Attribute

pub:Indexed_Attribute    rdfs:domain	pub:Index_Profile
pub:Indexed_Attribute    rdfs:range		itm:Pointer

With that kind of instance:

ex:Author_Index		rdf:type				pub:Index_Profile
ex:author			rdf:type				itm:Pointer
ex:Author_Index		pub:Indexed_Attribute		ex:author

The latest is clearly linking an instance of a domain class to an instance of a meta-class

Any feedback welcome on any of this from both sides.

Bernard

[1] http://www.mondeca.com/system/publishing/index.html
[2] http://www.mondeca.com/system/basicontology/index.htm

----------------------------------
Bernard Vatant
Mondeca Knowledge Engineering
bernard.vatant at mondeca.com
(+33) 0871 488 459

http://www.mondeca.com
http://universimmedia.blogspot.com
----------------------------------

> -----Message d'origine-----
> De : protege-owl-bounce at crg-gw.Stanford.EDU
> [mailto:protege-owl-bounce at crg-gw.Stanford.EDU]De la part de Holger
> Knublauch
> Envoyé : samedi 22 octobre 2005 12:47
> À : protege-owl at smi.stanford.edu
> Objet : [protege-owl] New Protege-OWL 3.2 beta
>
>
> Dear users,
>
> we are pleased to announce a new beta for Protege-OWL 3.2
>
> http://protege.stanford.edu/download/prerelease/full/
>
> This beta introduces many new features including
>
> - support for user-defined XML Schema datatypes
> - a new presentation syntax for logical expressions
> - support for the SPARQL query language
> - in improved imports mechanism
> - better RDF support
> - a redesigned annotations area
> - ...
>
> Details about the changes are available from
>
> http://protege.stanford.edu/plugins/owl/3.2.html
>
> Please give the new version a try and report bugs and questions on this
> list.  In order to get the new user interface, it is recommended to do a
> rebuild of the project (pprj) files, using Create new project/from
> existing sources.
>
> Holger & Matthew
> -------------------------------------------------------------------------
> To unsubscribe go to http://protege.stanford.edu/community/subscribe.html
>


-------------------------------------------------------------------------
To unsubscribe go to http://protege.stanford.edu/community/subscribe.html




More information about the Swoop mailing list