Draft Meta Model for UML core

Dear Sergey,

Sorry if you got two mails from me, I tried to cancel the previous one,

please ignore it, it was not finished.

I really like the UML work you have done.
I have been reviewing the uml-core-20000507.rdf yesterday and noticed
the following patterns in the RDF and have created a simple META model
around it. 
This is a rough draft to describe them,
I am working on a perl class hierarchy to read the meta model, and then
uml-core-20000507.rdf and then create a meta model in terms of itself.
I will be generating a perl hierarchy from the UML meta-model and
trying to feed this into the introspector.
The meta model is simpler than the model, and can be used to generate
processors of the UML.RDF.

mike

#########################################################
#SYNTAX :
# EACH LINE STARTS WITH A T:,C:,A: or #
# T is a Type, C a container of other elements, A an attribute
# lines starting with a # are a comment.

T:TYPE        
#this is a type of an object

C:CONTAINERTYPE CARDINALITY  
# A container represents element content or mixed content
#THE CARDINALITY CAN BE ?,+, or BLANK
#             (
#              ?       = optional
#              +       = one or more
#              [BLANK] = 1
              )
A:ATTRIBUTE
# An attribute is attached to a Type

##################################################
FOLLOWING ARE THE DEFINITIONS
##################################################
T:rdf:RDF
# THE RDF is the model object, it contains many of the following
C:Class +
C:AssociationClass +
C:Association +
C:Generalization +
C:d:Multiplicity +

T:Class
# A class is the basic element
A:rdf:ID
C:Classifier +
C:Classifier.feature+

T:Classifier
C:Attribute

T:Attribute
A:rdf:ID			
C:StructuralFeature.type

T:StructuralFeature.type
A:rdf:resource

T:Generalization
# here are the inheritance hierarchy.
C:Generalization.child
C:Generalization.parent
T:Generalization.child
A:rdf:resource

T:Generalization.parent
A:rdf:resource

T:AssociationClass
# Here are the associations
A:rdf:ID
C:Classifier.feature +
C:Association.connection

T:Association
C:Association.connection +

T:Association.connection
C:AssociationEnd 

T:AssociationEnd 
A:rdf:ID
C:AssociationEnd.type 
C:AssociationEnd.aggregation 
C:AssociationEnd.multiplicity
C:AssociationEnd.ordering

T:AssociationEnd.type 
A:rdf:resource

T:AssociationEnd.aggregation 
A:rdf:resource

T:AssociationEnd.multiplicity
A:rdf:resource

T:d:Multiplicity
# gives a name to a cardinality
A:rdf:ID
C:d:Multiplicity.range 

# d:Multiplicity.range  can be recursive, ie: it can contain itself
T:d:Multiplicity.range 
C:d:Multiplicity.range ?
C:d:MultiplicityRange.lower
C:d:MultiplicityRange.upper


T:d:MultiplicityRange.lower
# contains a int
C:#PCDATA

T:d:MultiplicityRange.upper
# the following are the alternatives
# contains a int
# OR 
# contains an resource
# BUT NOT BOTH
C:#PCDATA
A:rdf:resource

=====
James Michael DuPont
http://introspector.sourceforge.net/

__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/

Received on Tuesday, 2 July 2002 05:12:10 UTC