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]] On Behalf Of Michel Bohms
Sent: Sunday, October 14, 2012 6:16 AM
To: [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]>

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]] On Behalf Of Bohms, H.M. (Michel)
Sent: Thursday, October 11, 2012 3:44 AM
To: [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 <tel:%2B31%20%280%2988%20866%2031%2007>  31 07
M +31 <tel:%2B31%20%280%2963%20038%2012%2020>  (0)63 038 12 20
E  <mailto:[email protected]> [email protected]

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


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

 

 

-- 
-- 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]
<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]
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]
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
 
 

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


<<image001.gif>>

Reply via email to