@@ -148,7 +148,7 @@ helper SysML::Element::mapToDeclarations() {
148148
149149mapping SysML::Element::toEntity(): OWL::Entity disjuncts
150150 SysML::Feature::toObjectProperty,
151- SysML::Class ::toClass;
151+ SysML::Category ::toClass;
152152
153153// Namespace
154154
@@ -178,7 +178,7 @@ abstract mapping SysML::Package::toEntityBase(): OWL::Entity {
178178
179179// Class
180180
181- query SysML::Class ::owningFeature(): SysML::Feature {
181+ query SysML::Category ::owningFeature(): SysML::Feature {
182182 var owner = self.container();
183183 return
184184 if owner <> null and owner.oclIsKindOf(SysML::Feature) then
@@ -188,7 +188,7 @@ query SysML::Class::owningFeature(): SysML::Feature {
188188 endif;
189189}
190190
191- query SysML::Class ::name(): String {
191+ query SysML::Category ::name(): String {
192192 var effectiveName := self.name;
193193 if effectiveName = null then {
194194 var owningFeature := self.owningFeature();
@@ -201,23 +201,23 @@ query SysML::Class::name(): String {
201201 return effectiveName;
202202}
203203
204- query SysML::Class ::IRI(): String {
204+ query SysML::Category ::IRI(): String {
205205 return ElementIRI(self) + '-Class';
206206}
207207
208- query SysML::Class ::ownedFeatures(): List(SysML::Feature) {
208+ query SysML::Category ::ownedFeatures(): List(SysML::Feature) {
209209 return self.ownedMembership.ownedMemberElement[SysML::Feature];
210210}
211211
212- query SysML::Class ::implicitSuperclass(): SysML::Class {
212+ query SysML::Category ::implicitSuperclass(): SysML::Category {
213213 var owningFeature := self.owningFeature();
214214 return
215215 if owningFeature = null then null
216216 else owningFeature.type()
217217 endif
218218}
219219
220- query SysML::Class ::superclasses(): Bag(SysML::Class ) {
220+ query SysML::Category ::superclasses(): Bag(SysML::Category ) {
221221 var superclasses := self.ownedGeneralization.general;
222222 var implicitSuperclass := self.implicitSuperclass();
223223 if implicitSuperclass <> null then {
@@ -226,7 +226,7 @@ query SysML::Class::superclasses(): Bag(SysML::Class) {
226226 return superclasses;
227227}
228228
229- query SysML::Class ::feature(featureName: String): SysML::Feature {
229+ query SysML::Category ::feature(featureName: String): SysML::Feature {
230230 var members := self.ownedMembership.ownedMemberElement->union(self.ownedMembership.memberElement);
231231 var namedFeature := members[SysML::Feature]![name = featureName];
232232 if namedFeature = null then {
@@ -235,15 +235,15 @@ query SysML::Class::feature(featureName: String): SysML::Feature {
235235 return namedFeature;
236236}
237237
238- helper SysML::Class ::mapToDeclarations() {
238+ helper SysML::Category ::mapToDeclarations() {
239239 self.map toDeclaration();
240240 self.ownedMembership.ownedMemberElement->forEach(element) {
241241// log(' ownedMember: ' + valueOf(element.name));
242242 element.mapToDeclarations();
243243 };
244244}
245245
246- mapping SysML::Class ::toClass(): OWL::Class
246+ mapping SysML::Category ::toClass(): OWL::Class
247247 inherits SysML::Package::toEntityBase {
248248 log('Mapping Class ' + valueOf(self.name()) + ' to Class ' + valueOf(entityIRI));
249249
@@ -256,7 +256,7 @@ mapping SysML::Class::toClass(): OWL::Class
256256 } endif;
257257}
258258
259- helper SysML::Class ::mapToClassExpression(): OWL::ClassExpression {
259+ helper SysML::Category ::mapToClassExpression(): OWL::ClassExpression {
260260// log('Mapping Class ' + valueOf(self.name) + ' to ClassExpression');
261261 var entity := self.map toClass();
262262// log(' entity: ' + entity.toString());
@@ -282,9 +282,9 @@ query SysML::Feature::redefinedFeature(): SysML::Feature {
282282 var redefinedFeature := self.ownedElement[Redefinition].redefinedFeature![true];
283283 if redefinedFeature = null and self.name <> null then {
284284 var owner := self.owner();
285- if (owner <> null and owner.oclIsKindOf(SysML::Class )) then {
285+ if (owner <> null and owner.oclIsKindOf(SysML::Category )) then {
286286 redefinedFeature :=
287- owner.oclAsType(SysML::Class ).superclasses().feature(self.name)![true];
287+ owner.oclAsType(SysML::Category ).superclasses().feature(self.name)![true];
288288 } endif;
289289 } endif;
290290 log(' redefinedFeature: ' +
@@ -294,7 +294,7 @@ query SysML::Feature::redefinedFeature(): SysML::Feature {
294294 return redefinedFeature;
295295}
296296
297- query SysML::Feature::type(): SysML::Class {
297+ query SysML::Feature::type(): SysML::Category {
298298 var featureType := self.referencedType![true];
299299 if featureType = null then {
300300 var redefinedFeature := self.redefinedFeature();
@@ -305,15 +305,8 @@ query SysML::Feature::type(): SysML::Class {
305305 return featureType;
306306}
307307
308- query SysML::Feature::range(): SysML::Class {
309- return
310- if self.referencedType->notEmpty() then
311- self.referencedType![true]
312- else if self.ownedType->notEmpty() then
313- self.ownedType![true]
314- else
315- null
316- endif endif;
308+ query SysML::Feature::range(): SysML::Category {
309+ return self.type![true]
317310}
318311
319312helper SysML::Feature::mapToDeclarations() {
@@ -335,21 +328,23 @@ helper newMaxCardinality(cardinality: Integer, objectProperty: OWL::ObjectProper
335328}
336329
337330helper SysML::Feature::mapMultiplicity(objectProperty: OWL::ObjectProperty, domain: OWL::Class) {
338- if self.lower <> null then {
339- if self.lower.oclIsKindOf(SysML::LiteralInteger) then {
340- newMinCardinality(self.lower.oclAsType(SysML::LiteralInteger).value, objectProperty, domain);
331+ var lower = if self.multiplicity = null then null else self.multiplicity.lower endif;
332+ var upper = if self.multiplicity = null then null else self.multiplicity.upper endif;
333+ if lower <> null then {
334+ if lower.oclIsKindOf(SysML::LiteralInteger) then {
335+ newMinCardinality(lower.oclAsType(SysML::LiteralInteger).value, objectProperty, domain);
341336 } endif;
342- } else if self. upper <> null then {
343- if self. upper.oclIsKindOf(SysML::LiteralInteger) then {
344- newMinCardinality(self. upper.oclAsType(SysML::LiteralInteger).value, objectProperty, domain);
337+ } else if upper <> null then {
338+ if upper.oclIsKindOf(SysML::LiteralInteger) then {
339+ newMinCardinality(upper.oclAsType(SysML::LiteralInteger).value, objectProperty, domain);
345340 } endif
346341 } else {
347342 newMinCardinality(1, objectProperty, domain);
348343 } endif endif;
349344
350- if self. upper <> null and self. upper.oclIsKindOf(SysML::LiteralInteger) then {
351- newMaxCardinality(self. upper.oclAsType(SysML::LiteralInteger).value, objectProperty, domain);
352- } else if self. upper = null then {
345+ if upper <> null and upper.oclIsKindOf(SysML::LiteralInteger) then {
346+ newMaxCardinality(upper.oclAsType(SysML::LiteralInteger).value, objectProperty, domain);
347+ } else if upper = null then {
353348 newMaxCardinality(1, objectProperty, domain);
354349 } endif endif;
355350}
@@ -359,8 +354,8 @@ mapping SysML::Feature::toObjectProperty(): OWL::ObjectProperty
359354 log('Mapping Feature ' + valueOf(self.name) + ' to ObjectProperty ' + valueOf(entityIRI));
360355
361356 var owner = self.owner();
362- if owner <> null and owner.oclIsKindOf(SysML::Class ) then {
363- var domain := owner.oclAsType(SysML::Class ).map toClass();
357+ if owner <> null and owner.oclIsKindOf(SysML::Category ) then {
358+ var domain := owner.oclAsType(SysML::Category ).map toClass();
364359 log(' domain: ' + if domain = null then '<null>' else domain.toString() endif);
365360 new OWL::ObjectPropertyDomain(new ObjectPropertyReference(result), new OWL::ClassReference(domain));
366361 self.mapMultiplicity(result, domain);
@@ -381,7 +376,7 @@ helper SysML::Feature::mapToObjectPropertyExpression(): OWL::ObjectPropertyExpre
381376
382377mapping SysML::Generalization::toSubClassOf(): OWL::SubClassOf {
383378 log('Mapping Generalization');
384- subClassExpression := self.container().oclAsType(SysML::Class ).mapToClassExpression();
379+ subClassExpression := self.container().oclAsType(SysML::Category ).mapToClassExpression();
385380 superClassExpression := self.general.mapToClassExpression();
386381 log(' subClassExpression: ' + valueOf(subClassExpression.oclAsType(ClassReference)._class));
387382 log(' superClassExpression: ' + valueOf(superClassExpression.oclAsType(ClassReference)._class));
0 commit comments