Hi Irene,
Thanks for taking the time to help me think out the ontology, I will ponder
it properly and also perhaps fool around with a round 2 of the ontology
that works as you suppose.  I should state though, that my toy ontology is
modeled un-intuitively by design actually.  I wanted an incomplete ontology
to try and make a difficult scenario to fix with a restriction class :-)
So far, it has generated quite a few corner cases and has given me
something to stretch my legs a bit after a long absence from any kind of
modeling.  I must say, I still feel a bit rusty ...




On Thu, Jan 10, 2013 at 3:58 PM, Irene Polikoff <[email protected]>wrote:

> Tim,****
>
> ** **
>
> If we popup the stack from Turtle to the modeling problem, it would seem
> to be that:****
>
> ** **
>
> **·         **Parent is someone who has children – class membership can
> be inferred if you define this class using owl:someValuesFrom restriction
> on :hasChild property or a min cardinality restriction on the same.****
>
> **·         **Sibling is someone who has siblings – class membership can
> be inferred if you define this class using owl:someValuesFrom restriction
> on :hasSibling property or a min cardinality restriction on the same.****
>
> **·         **:Man can be defined using a owlHasValue “male” on the
> :gender property (or :Male if you are using a controlled vocabulary and not
> strings, this depends on how your data looks like)****
>
> **·         **Then, Uncle is an intersection of the class :Man and an
> anonymous class equivalent to owl:someValuesFrom :Parent restriction on
> :hasSibling property. ****
>
> **o   **In Manchester syntax it will look like *:Man and :hasSibling some
> :Parent* ****
>
> **·         **Nephew is an intersection of the class :Man and an
> anonymous class equivalent to owl:someValuesFrom :Sibling restriction on
> either an inverse of :hasChild property or (the latter is simpler and
> easier to understand which should be a key goal when selecting ontology
> modeling patterns) on :hasParent property. ****
>
> **o   **In Manchester syntax it will look like *:Man and inv(:hasChild)
> some :Sibling* or  *:Man and :hasParent some :Sibling*. Either of these
> options is easier to understand than the double inverses in your example.*
> ***
>
> **·         **:hasSibling could be defined as a parent property of
> :hasBrother and :hasSister if your underlying data uses these properties.
> It is a symmetric property.****
>
> **·         **:hasChild can be defined as an inverse of :hasParent****
>
> **·         **:Brother, if you really need this class, is an intersection
> of :Man and :Sibling****
>
> ** **
>
> Regards,****
>
> ** **
>
> Irene****
>
> ** **
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Holger Knublauch
> *Sent:* Thursday, January 10, 2013 6:11 PM
> *To:* [email protected]
> *Subject:* Re: [topbraid-users] How to create restriction class in TBC****
>
> ** **
>
> Hi Tim,
>
> the Turtle that Jena accepts looks like
>
> :Uncle
>       a       owl:Class ;
>       rdfs:subClassOf :Person ;
>       owl:equivalentClass
>               [ a       owl:Restriction ;
>                 owl:onProperty
>                         [ owl:inverseOf :hasBrother
>                         ] ;
>                 owl:someValuesFrom
>                         [ owl:onProperty
>                                   [ owl:inverseOf :hasParent
>                                   ] ;
>                           owl:someValuesFrom :Person
>                         ]
>               ] .
>
> so your example had a few too many dots and was missing a closing bracket
> at the end. I haven't looked at the Turtle spec whether the dots should be
> allowed or not - if you think this is a bug please follow up on the Jena
> mailing list.
>
> It also lacked an rdf:type owl:Restriction triple.
>
> This is displayed by TBC in Manchester Syntax as
>
>     inv(hasBrother) some (inv(hasParent) some Person)
>
> However the current TBC form widget doesn't seem to like this (unusual)
> construct so that editing the source code is your safest option at this
> time.
>
> ... or use SPIN which is arguably a more natural and more flexible way of
> modeling this scenario.
>
> HTH
> Holger
>
>
> On 1/11/2013 7:34, Tim Harsch wrote:****
>
> Hi all,
> After reading the TBC getting started guide and some exploration of the
> restriction editor I find myself having difficulty creating a certain
> restriction class.
>
> First, my modeling problem and a relevant question took place here:
>
> https://answers.semanticweb.com/questions/20300/model-uncle-using-class-restrictions
> ****
>
> In that thread I was advised to try this solution:****
>
> :Uncle  owl:equivalentClass  [****
>
>     owl:onProperty  [ owl:inverseOf :hasBrother ];  # or :hasBrother if it's 
> asserted to be symmetric****
>
>     owl:someValuesFrom  [****
>
>        owl:onProperty  [ owl:inverseOf :hasParent ]; # or :hasChild if it's 
> defined****
>
>        owl:someValuesFrom  :Person****
>
>     ] .****
>
> I first tried to do this using TBC form editor but could not figure it
> out.  Question 1:  how do I model this using the form editor?
>
> I then tried a work around of just adding the turtle directly and then
> opening the file to see what TBC would do with the form for Uncle. But I
> get:
>
> Operation failed.
> Reason:
> com.hp.hpl.jena.shared.JenaException: org.openjena.riot.RiotException:
> [line: 51, col: 47] Triples not terminated properly in []-list
>
> The Turtle file is here:
> https://dl.dropbox.com/u/4464286/ForTopQuadrant/uncleProblem.ttl****
>
> So, Question 2:  Why is that turtle throwing an exception? It looks valid
> to me.
>
> Thanks for any help,
> Tim****
>
> --
> -- 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
>
>  ****
>
> --
> -- 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


Reply via email to