Hi Christoph,
It is hard to have this discussion without knowing how you connect to external data and other details of your application. And then it starts to become consulting rather than a question about the capabilities of the tool. So, I am going to be brief and make some assumption that may be incorrect. 1. Assuming that the external source is a relational database or similar, I would do the following: . Have O1 as your 'canonical' or 'mapped to' model. . Have O2 as the external data source model which would include individual resources - the actual data (or there could be more modularity as well - O2A is a schema of the data source, O2B imports O2A and has data, etc.) . Create O3 that imports both O1 and O2 and connects them. In this model, you would make statements like o2:Type1 rdfs:subClassOf o1:Type. o2:hasType rdfs:range o1:Type can be in that model as well if hasType belongs in O2 or if you would prefer not to say something like this in O1. Or it could be stated in O1 if it makes more sense there. Think of O3 as your mapping model. It can support multiple data sources. Or you can have and even more modularity where there are multiple mapping models - one per each data source and there is another ontology that imports all mapping ontologies. There can be variations on this solution. 2. If, for some reason, you don't like to use rdfs:range, you could use OWL restriction saying something like the following (in the Manchester syntax): :Element (rdfs:subClassOf) :hasType only :Type It is not clear to me why this would be better than the range, but it is an option. Both rdfs:range and restriction above operate under the open world assumption where you could have new subclasses of Type or previously existing subclasses could disappear. If you are to use owl:oneOf you are effectively 'closing the world' y providing explicit enumeration and, therefore, removing this flexibility. Regards, Irene Polikoff From: [email protected] [mailto:[email protected]] On Behalf Of chris Sent: Monday, November 11, 2013 11:48 AM To: [email protected] Subject: Re: [topbraid-users] List of subclasses as property range Hello again, yes there is a reason. The real ontology is much more complex and I need a way to add data to it form an external source with an external application. So my solution is to define a new ontology (o2) which imports the existing ontology (o1) and assigns Elements from the external source to different classes of the ontology (o1). I need a flexibe control over the assignment. In the ontology (o2) I want to define individuals the external application can use to assign Elements form the source as individuals to classes of the ontology (o1). Therefore I need a way to define one of the classes form (o1) which are subclasses of the class "ont1" in the ontology (o2) as range for "hasType" while creating the new individual. To avoid mistakes if someone else (or me in a few weeks;)) creates a new assignment of a different datasource I would like to define the ontology (o2) in a way that only the possible assignments are selectable. But if the ontology (o1) is changed, the possible range for the object property "hasType" should also change automatically. If there is a better way to do the assignement I am greatful for any suggestions. greetings Christoph Am Montag, 11. November 2013 16:33:11 UTC+1 schrieb Irene Polikoff: Chris, Any reason why you would not simply say that the range is class Type? On Nov 11, 2013, at 10:25 AM, chris <[email protected] <javascript:> > wrote: Hello, I have an ontology with a class "Element", a class "Type" with some subclasses "Type_1", "Type_2", ..., and an object property "hasType" with the class "Element" as domain and one of the subclasses from "Type" as range like: <owl:AsymmetricProperty rdf:ID="hasType"> <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has type</rdfs:label> <rdfs:range> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <rdf:Description rdf:ID="Type_1"/> <rdf:Description rdf:ID="Type_2"/> </owl:oneOf> </owl:Class> </rdfs:range> <rdfs:domain rdf:resource="#Element"/> </owl:AsymmetricProperty> So I am able to create a new Instance of the class "Element" and choose "Type_1" or "Type_2" from a list as value for "hasType". But I want to define the range of the property "hasType" in a more flexible way. Is it possible (e. g. with manchester syntax) to define the range of the property "hasType" as one subclass of the class "Type"? E. g. if I add the subclass "Type_3" to the class "Type" it becomes automatically part of the possible range from the object property "hasType". best regards Christoph -- -- 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 Insight, SPARQLMotion, SPARQL Web Pages and SPIN. To post to this group, send email to [email protected] <javascript:> To unsubscribe from this group, send email to [email protected] <javascript:> 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 Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <javascript:> . For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 Insight, 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 Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out. -- -- 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 Insight, 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 Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
