Hi Irene

Interesting but...in that case do you have to repeat other CarParts?

Ie would a NavigationSystem or Body be again also a subclass of 
17inchWheelCarPart?

(just like in my proposal where you have to duplicate x and z)

Or do you see some smart reuse in this way?

Thx again, Michel



Dr. ir. H.M. (Michel) Böhms
Sr. Research Scientist
Technical Sciences

T +31 (0)88 866 31 07
M +31 (0)63 038 12 20
E [email protected]<mailto:[email protected]>

Location<http://www.tno.nl/locaties/dtm>
Disclaimer<http://www.tno.nl/emaildisclaimer>


[Description: C:\Users\bohmshm\AppData\Roaming\Microsoft\Signatures\TNO 
(EN)_files\logo_signature.gif]<http://www.tno.nl/>




From: [email protected] [mailto:[email protected]] 
On Behalf Of Irene Polikoff
Sent: maandag 15 oktober 2012 6:50
To: [email protected]; 'Peter Bonsma (RDF Ltd.)'
Subject: RE: [topbraid-users] Modelling decomposition issue

Actually, another possibility is to create a class like 17inchWheelCarPart and 
make its subclasses all the classes that are targets for hasPart property for 
17inchWheelCar such as 17inchWheel and others. I think this would better than 
using a complex intersection in the restriction.

From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]]<mailto:[mailto:[email protected]]>
 On Behalf Of Michel Bohms
Sent: Sunday, October 14, 2012 6:16 AM
To: [email protected]<mailto:[email protected]>; 
Peter Bonsma (RDF Ltd.)
Subject: Re: [topbraid-users] Modelling decomposition issue

I was also wondering myself:

add allValueFrom (x or y or z...) for the supertype (Car)
and add allValuesFrom (x or y1 or z, ...) for the subtype (17inchwheelCar)

(besides all QCR's relevant for min/xa cardinalities)

y being theWheel and y1 the 17inchWheel


would that make sense, or does the whole situation become to much 
"closed-world"?

wrt your solution one.....wouldnt it be nice to have this option always 
available on the fly/ ie for each class also a negative class is availbel to be 
used in such constructs (ie without defining them explicitly) ie sint there 
something owl2 like that?

thx again, Michel

2012/10/13 Irene Polikoff <[email protected]<mailto:[email protected]>>
Michel,

I think you have 3 options:


1.       Create classes like Non17inchWheel

Then you can say

17inchWheelVehicle hasPart max 0 Non17inchWheel

Your class hierarchy will grow considerably more complex than it is now since 
for each type of part you have you will have to create a "non" class and 
arrange everything appropriately in the class tree. If you have let's say 3 
different wheel types - 17inch, 18inch and 19inch, you need create three "non" 
classes and define the subclass relationships so that any member of 
17inchWheel, is also a member of :Non18inchWheel and :Non19inchWheel. I don't 
really see this approach as a viable solution.


2.       Create specific properties as subs of hasPart such as hasWheel

Then you can say

17inchWheelVehicle hasWheel: allValuesFrom 17inchWheel

You will probably need to have much more properties. How many depends on your 
needs. I would create them for each part where you need this pattern. That is 
if you only have one type of an engine and you only need to say that a vehicle 
must have one engine, you don't need to create hasEngine property, but if you 
have multiple types of engines, you would need the property.


3.       Use SPIN constraints

Then you can keep your current model as is and add the following 
spin:constraint to  17inchWheelVehicle

ASK WHERE {?this hasPart ?wheel.
?wheel a ?wheelClass.
?wheelClass rdfs:subClass* :Wheel.
NOT EXISTS {?wheelClass rdfs:subClassOf* :17inchWheel}

This constraint identifies a violation if any 17inchWheelVehicle has a part 
that is a wheel but not a 17inch wheel. It will work even if you have 
subclasses of 17inch wheel such as Premium17inchWheel or whatever.


Regards,

Irene Polikoff
From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Bohms, H.M. (Michel)
Sent: Thursday, October 11, 2012 3:44 AM
To: [email protected]<mailto:[email protected]>
Cc: Bonsma, P. (Peter)
Subject: [topbraid-users] Modelling decomposition issue


Dear All,

We ran here in a modeling issue for which we would highly appreciate your 
advice.

Suppose I have the following ontology:

*         Vehicle class

*         Body class

*         Wheel class with subclass 17inchWheel

*         hasPart object property

Vehicle hasPart Wheel, 2 or more  > QCR-mincard
Vehicle hasPart exactly one Body > QCR-card

My preference is not to introduce subproperties of hasPart (we prefer one 
consistent approach that is, now at least, quite class-based).

Now suppose we want to model a subclass of Vehicle, a 17inchWheelVehicle (a 
"vehicle having only 17inch wheels") and want to say that all wheels should be 
of type 17inchWheel.

The first idea was to add an allValuesFrom for hasPart but this is limiting 
this hasPart too much (also the subtype has a body etc.).
Next we could add also a mincard-QCR on the subtype now qualified for 
17inchWheel but this is not covering the semantics: then there can be 2 
17inchwheels and 2 non-17inchwheels...which you want to exclude

So what we really need is a kind of "qualified allValuesFrom" here....:

17inchWheelVehicle hasPart Wheel: allValuesFrom 17inchWheel

Which is of course not available.

Comments/advice very welcome,

In case we have to start introducing subproperties of hasPart here, I would 
also like to know what are good strategies ( a subprop. For each potential 
part?, only under certain conditions etc.?),

Thanks a lot, Michel




Dr. ir. H.M. (Michel) Böhms
Sr. Research Scientist
Technical Sciences

T +31 (0)88 866 31 07<tel:%2B31%20%280%2988%20866%2031%2007>
M +31 (0)63 038 12 20<tel:%2B31%20%280%2963%20038%2012%2020>
E [email protected]<mailto:[email protected]>

Location<http://www.tno.nl/locaties/dtm>
Disclaimer<http://www.tno.nl/emaildisclaimer>


[Description: C:\Users\bohmshm\AppData\Roaming\Microsoft\Signatures\TNO 
(EN)_files\logo_signature.gif]<http://www.tno.nl/>




--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]<mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected]<mailto:topbraid-users%[email protected]>
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en


--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]<mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected]<mailto:topbraid-users%[email protected]>
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en



--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]<mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected]<mailto:[email protected]>
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en


--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]<mailto:[email protected]>
To unsubscribe from this group, send email to
[email protected]<mailto:[email protected]>
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en


-- 
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en


<<inline: image001.gif>>

Reply via email to