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