/* * This software is Copyright 2005,2006,2007,2008 Langdale Consultants. * Langdale Consultants can be contacted at: http://www.langdale.com.au */ package au.com.langdale.xmi; import au.com.langdale.kena.OntModel; import au.com.langdale.kena.Property; import au.com.langdale.kena.Resource; import au.com.langdale.kena.ResourceFactory; /** * Provisional namespace to represent UML concepts in OWL ontologies. * This is used for concepts with no near equivalent in OWL. */ public class UML { public final static String NS = "http://langdale.com.au/2005/UML#"; // UML meta-classes public final static Resource Stereotype = ResourceFactory.createResource(NS + "Stereotype"); public final static Resource Package = ResourceFactory.createResource(NS + "Package"); //public final static Resource Component = ResourceFactory.createResource(NS + "Component"); //public final static Resource Attribute = ResourceFactory.createResource(NS + "Attribute"); //public final static Resource Class = ResourceFactory.createResource(NS + "Class"); //public final static Resource Association = ResourceFactory.createResource(NS + "Association"); // the global Package that encloses everything public final static Resource global_package = ResourceFactory.createResource(NS + "global_package"); // stereotypes we recognise public final static Resource attribute = ResourceFactory.createResource(NS + "attribute"); public final static Resource primitive = ResourceFactory.createResource(NS + "primitive"); public final static Resource base = ResourceFactory.createResource(NS + "base"); public final static Resource datatype = ResourceFactory.createResource(NS + "datatype"); public final static Resource cimdatatype = ResourceFactory.createResource(NS + "cimdatatype"); public final static Resource enumeration = ResourceFactory.createResource(NS + "enumeration"); public final static Resource union = ResourceFactory.createResource(NS + "union"); public final static Resource extendedBy = ResourceFactory.createResource(NS + "extendedby"); public final static Resource extension = ResourceFactory.createResource(NS + "extension"); public final static Resource xmlelement = ResourceFactory.createResource(NS + "xmlelement"); public final static Resource xmlattribute = ResourceFactory.createResource(NS + "xmlattribute"); public final static Resource byreference = ResourceFactory.createResource(NS + "byreference"); public final static Resource concrete = ResourceFactory.createResource(NS + "concrete"); public final static Resource compound = ResourceFactory.createResource(NS + "compound"); public final static Resource preserve = ResourceFactory.createResource(NS + "preserve"); // stereotype the two forms of aggregation, each in two directions public final static Resource ofComposite = ResourceFactory.createResource(NS + "ofComposite"); public final static Resource ofAggregate = ResourceFactory.createResource(NS + "ofAggregate"); public final static Resource compositeOf = ResourceFactory.createResource(NS + "compositeOf"); public final static Resource aggregateOf = ResourceFactory.createResource(NS + "aggregateOf"); // the stereotype of a model element public final static Property hasStereotype = ResourceFactory.createProperty(NS + "hasStereotype"); // the initial value of an attribute public final static Property hasInitialValue = ResourceFactory.createProperty(NS + "hasInitialValue"); // units and multiplier are not really a UML concepts, we infer these under CIM conventions public final static Property hasUnits = ResourceFactory.createProperty(NS + "hasUnits"); public final static Property hasMultiplier = ResourceFactory.createProperty(NS + "hasMultiplier"); // tags we recognise that aid conversion to RDFS/OWL public final static Property baseuri = ResourceFactory.createProperty(NS + "baseuri"); public final static Property baseprefix = ResourceFactory.createProperty(NS + "baseprefix"); public final static Property roleALabel = ResourceFactory.createProperty(NS + "roleALabel"); public final static Property roleBLabel = ResourceFactory.createProperty(NS + "roleBLabel"); public final static Property roleAOf = ResourceFactory.createProperty(NS + "roleAOf"); public final static Property roleBOf = ResourceFactory.createProperty(NS + "roleBOf"); // declare a prefix to namespace mapping. can be used in annotation files to // associate namespaces with elements via their baseprefix tags. public final static Property uriHasPrefix = ResourceFactory.createProperty(NS + "uriHasPrefix"); // the XMI id of a model element can be preserved in the graph for debugging public final static Property id = ResourceFactory.createProperty(NS + "id"); // the cardinality of a class (as opposed to a property) public final static Property hasMaxCardinality = ResourceFactory.createProperty(NS + "hasMaxCardinality"); public final static Property hasMinCardinality = ResourceFactory.createProperty(NS + "hasMinCardinality"); public static void loadOntology( OntModel model ) { model.createClass(Stereotype.getURI()); model.createClass(Package.getURI()); //model.createClass(Component.getURI()); //model.createClass(Attribute.getURI()); //model.createClass(Class.getURI()); //model.createClass(Association.getURI()); model.createIndividual(global_package.getURI(), Package); // well known stereotypes model.createIndividual(enumeration.getURI(), Stereotype).addLabel("Enumeration", null); model.createIndividual(union.getURI(), Stereotype).addLabel("Union", null); model.createIndividual(extendedBy.getURI(), Stereotype).addLabel("Extended By", null); model.createIndividual(extension.getURI(), Stereotype).addLabel("Extension Class", null); model.createIndividual(primitive.getURI(), Stereotype).addLabel("Primitive", null); model.createIndividual(base.getURI(), Stereotype).addLabel("Base", null); model.createIndividual(cimdatatype.getURI(), Stereotype).addLabel("CIMDatatype", null); model.createIndividual(datatype.getURI(), Stereotype).addLabel("Datatype", null); model.createIndividual(cimdatatype.getURI(), Stereotype).addLabel("CIMDatatype", null); model.createIndividual(attribute.getURI(), Stereotype).addLabel("Attribute", null); model.createIndividual(xmlelement.getURI(), Stereotype).addLabel("XML Element", null); model.createIndividual(xmlattribute.getURI(), Stereotype).addLabel("XML Attribute", null); model.createIndividual(byreference.getURI(), Stereotype).addLabel("By Reference", null); model.createIndividual(concrete.getURI(), Stereotype).addLabel("Concrete", null); model.createIndividual(compound.getURI(), Stereotype).addLabel("Compound Datatype", null); model.createIndividual(preserve.getURI(), Stereotype).addLabel("Preserve", null); model.createIndividual(ofComposite.getURI(), Stereotype).addLabel("Of Composite", null); model.createIndividual(ofAggregate.getURI(), Stereotype).addLabel("Of Aggregate", null); model.createIndividual(compositeOf.getURI(), Stereotype).addLabel("Composite Of", null); model.createIndividual(aggregateOf.getURI(), Stereotype).addLabel("Aggregate Of", null); model.createAnnotationProperty(baseuri.getURI()); model.createAnnotationProperty(baseprefix.getURI()); model.createAnnotationProperty(uriHasPrefix.getURI()); model.createAnnotationProperty(roleALabel.getURI()); model.createAnnotationProperty(roleBLabel.getURI()); model.createAnnotationProperty(roleAOf.getURI()); model.createAnnotationProperty(roleBOf.getURI()); model.createAnnotationProperty(hasStereotype.getURI()); model.createAnnotationProperty(hasInitialValue.getURI()); model.createAnnotationProperty(hasUnits.getURI()); model.createAnnotationProperty(hasMultiplier.getURI()); model.createAnnotationProperty(id.getURI()); model.createAnnotationProperty(hasMaxCardinality.getURI()); model.createAnnotationProperty(hasMinCardinality.getURI()); } }