ALe; This is more of a general reasoning question, so I'd suggest looking for forums that get into more general aspects of inference.  What I can tell you is that the kind of reasoning you are attempting is not possible in OWL because of Open World Assumptions.  I.e. it's not possible to infer that something is not a member of a class because some other information may become available that infers or asserts that it is a member of the class.

OTOH, if you want to perform this kind of negation, I'd suggest using SPARQL.  Try running the following in your SPARQL view (my query is approximate as your spec is semi-formal):

CONSTRUCT {?person a :Extranjero}
WHERE {
    ?person a :Person .
    FILTER NOT EXISTS  {?
person :hasnacionalidad "Mexicano" .}
}

This gives you an idea of how the inference can be made.  To place this in a system of inferences I'd suggest using SPIN (http://www.w3.org/Submission/2011/SUBM-spin-overview-20110222/).

To do this in Composer, configure inferencing to use SPIN (Inference > Configure Inferencing..., click the "Customize settings..." checkbox, Add>> TopSPIN and remove other reasoners from the pipeline.

Create a new file by choosing File > New >  RDF/OWL/SPIN File.  When that file is open in Composer, open the Imports tab and import your data file (drag/drop the data file into the imports tab is easiest). 

Then create the two rules you want.  To infer persons as members of :Mexican, double-click :Person to open it in the Class Form.  Then choose Add empty row... for the spin:rule property and enter the following:

CONSTRUCT { ?this a :Mexican .}
WHERE
{    ?this :hasnacionalidad "Mexicano" .
}

The value of the ?this variable will be bound to each member of :Person before executing the query.  I.e. if you have 50 members of :Person, the rule will be executed for each one, binding ?this to each member.

For the Extranjero inference, do the same as above - in the :Person class
choose Add empty row... for the spin:rule property and enter the following:

CONSTRUCT {?this a :Extranjero .}
WHERE
{    FILTER NOT EXISTS  {?this :hasnacionalidad "Mexicano" .} .
}


Note this is a slight variant of the first query i did above.

Run inferences as you have done before and the inferences you are looking for will be made.

Generally speaking SPARQL and SPIN are a lot more direct about the computations one wants to make and is therefore much easier to work with.  In addition, it is far less constrained than OWL, so you can practically run any computation or data transformation.  It is well worth a try, and I'd suggest taking a look at a couple of resources:
  - http://www.topquadrant.com/products/SPIN.html
  - in Composer Help, go to TopBraid Composer > Application Development Tools > SPIN

-- Scott

On 2/28/2013 6:04 PM, aLe C wrote:
Hi
I want to infer when a person isn't mexican, in other words,
I have instances (of a table imported by topbraid) with mexican persons and foreign persons "Nicaraguan, Paraguayan, Puerto Rican, so on"
The ontology have two classes, "Mexican" y "Foreign"  with the property "hasnacionalidad"

Mexicano hasnacionalidad value "Mexicano"
Extranjero (not Mexicano)

then,at the moment when run inferencing 
it isn't infer nothing in "Extranjero" when the list have a lot of "Extranjeros"

I used not, disjoint and complementOf

Regards!

--
-- 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 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 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 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