Trying to follow this...
Are these the ontologies we're talking about?:
ont1:Person
a owl:Class ;
rdfs:label "Person"^^xsd:string ;
rdfs:subClassOf
[ a owl:Restriction ;
owl:cardinality "1"^^xsd:nonNegativeInteger ;
owl:onProperty ont1:profession
] .
ont2:Professional
a owl:Class ;
rdfs:label "Professional"^^xsd:string ;
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty ont2:profession ;
owl:someValuesFrom ont2:Professional
] .
ont2:Profession
a owl:Class ;
rdfs:label "Profession"^^xsd:string ;
owl:oneOf (ont2:Engineer ont2:Teacher ont2:Doctor ont2:Lawyer) .
And if so...
Does one of the queries in this file fit your requirement?
-------------------------
# If ont1:profession objects are already using ont2 resources
CONSTRUCT {
?entity ont2:profession ?value .
}
WHERE {
?entity ont1:profession ?value .
?value a ont2:Profession .
}
--------------------------
# If ont1:profession objects are strings that are compared to ont2
resources
CONSTRUCT {
?entity ont2:profession ?enumValue .
}
WHERE {
?entity ont1:profession ?value .
?enumValue a ont2:Profession .
FILTER (afn:localname(?enumValue) = ?value) .
}
--------------------------
# If ont1:profession objects are strings that are used to create ont2
resources
CONSTRUCT {
?entity ont2:profession ?ont2Value .
}
WHERE {
?entity ont1:profession ?value .
LET (?ont2Value := smf:buildURI("ont2:{?value}")) .
}
--------------------------
On Nov 12, 3:51 pm, Scott Henninger <[email protected]>
wrote:
> Hello Suzanne; I'm not sure this is clear yet. Are you describing
> class restrictions? I.e. something along the lines of:
> :Person rdfs:subClassOf [:hasProf some :profession]
> (Sorry for mixing Manchester and RDF syntax, but hopefully the intent
> is understandable.)
>
> Or do you mean that there are instances of :Person with :profession's,
> such as:
> :Person :hasProf :engineer
>
> ...or something else. I'm having difficulty understanding the
> relationship between your property (has_a or has_a_profession) and the
> owl:oneOf class definition.
>
> In terms of SWRL, what rule processor was used to make the inference?
>
> -- Scott
>
> On Nov 12, 2:09 pm, Suzanne Collier <[email protected]> wrote:
>
> > Holger,
>
> > Thanks!
>
> > Ok, so here is a sample ontology, which I hope clarifies things.
>
> > Ontology1:
> > has a class person
> > each person has a profession
>
> > Ontology2:
> > has a class professional
> > each professional has a profession
> > each profession is owl:oneOf {engineer, teacher, doctor,
> > lawyer...}
>
> > The mapping that takes place is:
>
> > ont1:profession -> ont2:profession
>
> > In TopBraid this seems to require iterating through the owl:oneOf list
> > to pick the correct type. In the SWRL rule this is not necessary. We
> > wrote the SWRL rules by hand in the rdf/xml format.
>
> > Thanks for your help!
>
> > Suzanne
>
> > On Nov 12, 11:46 am, Holger Knublauch <[email protected]> wrote:
>
> > > > For my first question, I may have not been specific enough. I am
> > > > creating a function via an eclipse plug-in, which requires me to
> > > > extend AbstractFunction1, AbstractFunction2 or AbstractFunction3.
> > > > This is what is limiting the number of arguments. Is there a
> > > > workaround for this?
>
> > > Ah, yes sure. Either implement the Jena interface Function directly,
> > > or subclass
>
> > > org.topbraid.sparql.functions.AbstractFunction
>
> > > > For my second question, here is the SWRL rule which corresponds to the
> > > > query:
>
> > > > <ruleml:imp>
> > > > <ruleml:_body>
> > > > <swrlx:datavaluedPropertyAtom swrlx:property="&ont1;property">
> > > > <ruleml:var>entity</ruleml:var>
> > > > <ruleml:var>value</ruleml:var>
> > > > </swrlx:datavaluedPropertyAtom>
> > > > </ruleml:_body>
> > > > <ruleml:_head>
> > > > <swrlx:individualPropertyAtom swrlx:property="&ont2;property">
> > > > <ruleml:var>entity</ruleml:var>
> > > > <ruleml:var>value</ruleml:var>
> > > > </ruleml:_head>
> > > > </ruleml:imp>
>
> > > > For some reason in SWRL it matches the URI without having to iterate
> > > > through the list. Let me know if you need anymore information.
>
> > > Yes I guess we will need more information. What tool did you create
> > > the above rule with? Doesn't look like real SWRL to me. Also, you
> > > stated that you need to match against owl:oneOfs? I don't see how this
> > > is related. Could you provide the actual example ontology and some
> > > other clues?
>
> > > Thanks
> > > Holger
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TopBraid Composer Users" group.
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-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---