Skip to content

Commit 0d41aad

Browse files
committed
ST6RI-36 Updated OWL mapping for new metamodel (but didn't test).
1 parent 1414b0f commit 0d41aad

1 file changed

Lines changed: 30 additions & 35 deletions

File tree

org.omg.sysml.owl/transforms/SysML2OWL.qvto

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ helper SysML::Element::mapToDeclarations() {
148148

149149
mapping 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

319312
helper SysML::Feature::mapToDeclarations() {
@@ -335,21 +328,23 @@ helper newMaxCardinality(cardinality: Integer, objectProperty: OWL::ObjectProper
335328
}
336329

337330
helper 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

382377
mapping 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

Comments
 (0)