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.

Reply via email to