John; For some kinds of reasoning, I think you'll find SPARQL/SPIN to
be much a more direct way of specifying your semantics. I.e. in your
case you want to infer that any resource that has a hasChapterNumber
property but not a hasSectionNumber property is a member of some
class. This is directly stated as a SPIN rule:
CONSTRUCT {?this a :MyClass}
WHERE {
?this :hasChapterNumber ?chap .
NOT EXISTS {?this :hasSectionNumber ?sec}
}
Place this in the spin:rule for owl:Thing to reason over all resources
that are instances of owl:Thing and all of its subclasses. If you
need to count the number of properties, ala OWL cardinality with
closed world assumptions, you can use smf:countMatches().
Also look at the W3C's OWL 2 RL profile. This is implemented as a set
of SPIN rules in TopBraid/SPIN/owlrl-all.rdf.
-- Scott
On Jun 1, 9:10 am, "Irene Polikoff" <[email protected]> wrote:
> Hi John,
>
> OWL reasoning is based on the open world assumption. In the open world, one
> does not know if there is another triple somewhere with the restricted
> property as a predicate. This means that you will never get any
> classification results based on the exact cardinality or maximum cardinality
> restrictions.
>
> < All I want to do is be able to fill a class with those instances that
> have a chapterNumber of one and no sectionNumber, ie not a value of
> but the specific lack of a property>
>
> You will not be able to do this using OWL cardinality. I recommend using a
> SPIN rule.
>
> Regards,
>
> Irene
>
> -----Original Message-----
> From: [email protected]
>
> [mailto:[email protected]] On Behalf Of John Perdoni
> Sent: Tuesday, June 01, 2010 9:54 AM
> To: TopBraid Suite Users
> Subject: [topbraid-users] Owl:EquivalentClass advice
>
> Hi all, I wonder if you could shed some light on the following.
>
> I have a class that contains instances like those listed below
>
> :BS_7671_2008_11
> a :TextExtract ;
> rdfs:label "Chapter 11"^^xsd:string ;
> :hasChapterHeading "SCOPE"^^xsd:string ;
> :hasChapterNumber 1 ;
> :hasPartNumber 1 ;
> :hasRegulationNumber
> "110"^^xsd:string ;
> :hasSource :PublishedBook_BS_7671_2008 .
>
> and
>
> :BS_7671_2008_110_1
> a :TextExtract ;
> rdfs:label "BS_7671_2008_110_1"^^xsd:string ;
> :hasChapterNumber 1 ;
> :hasHeading "General"^^xsd:string ;
> :hasPartNumber 1 ;
> :hasRegulationNumber
> "110.1"^^xsd:string ;
> :hasSectionNumber 0 ;
> :hasSource :PublishedBook_BS_7671_2008 ;
> :hasSubSectionNumber
> 1 .
>
> I have created a class called Chapter_1 to which I applied the
> following owl:equivalentClass restriction
>
> (hasChapterNumber value 1)
> and (hasSectionNumber exactly 0)
>
> which after inferencing returns no members, if however I use
>
> hasChapterNumber value 1 or
>
> (hasChapterNumber value 1)
> and (hasSectionNumber value 0)
>
> I get the expected results.
>
> Can you clarify whether or not it is my logic or lack of knowledge
> that is at fault here.
>
> All I want to do is be able to fill a class with those instances that
> have a chapterNumber of one and no sectionNumber, ie not a value of
> but the specific lack of a property , reading the Owl specifications
> it states
>
> 3.1.2.2 Cardinality constraints
> In OWL, like in RDF, it is assumed that any instance of a class may
> have an arbitrary number (zero or more) of values for a particular
> property. To make a property required (at least one), to allow only a
> specific number of values for that property, or to insist that a
> property must not occur, cardinality constraints can be used. OWL
> provides three constructs for restricting the cardinality of
> properties locally within a class context.
>
> NOTE: OWL Lite includes the use of all three types of cardinality
> constraints, but only when used with the values "0" or "1".
>
> What am i doing wrong, your continued help is much appreciated.
>
> Regards
>
> John
>
> --
> You received this message because you are subscribed to the Google
> Group "TopBraid Suite Users", the topics of which include TopBraid Composer,
> TopBraid Live, TopBraid Ensemble, SPARQLMotion 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
> athttp://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 TopBraid Composer,
TopBraid Live, TopBraid Ensemble, SPARQLMotion 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