Let me explain a bit.
String rule = "[rule1:(?x http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.semanticweb.org#Employee) "
+ "( ?x http://www.semanticweb.org#Salary ?salary )"
+ "greaterThan(?salary, 10,00) "
+ " -> (?x http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.semanticweb.org#QualifiedEmployee. )]"
Classes in my ontology are
Employee (Super class of all employees)
* ContractEmployee* (Subclass of Employee)
FinanceManager
ITManager (Subclasses of ContractEmployee)
* PermanantEmployee *(Subclass of Employee)
Analyst
Programmer
In this case, will I use ?x rdf:type Employee or ?x rdf:type
ContractEmployee
All the instances are either from subclasses * FinanceManager , ITManager
or Analyst, Programmer*
*Is it must that if I use ?x rdf:type Employee, then FinanceManager &
ITManager should also be sub classes of general super class "Employee" ?*
Post by Dave ReynoldsThe mail list doesn't support attachments so the image didn't come through.
However, I'm guessing it included a class Employee with sub-classes
ContractEmployee and PermanantEmployee.
I have this ontology: Now if I want to use some rules like
Post by tina saniif x rdf:type Employee and ?x salary>Euro10,000. then ?x
QualifiedEmployee.
My question here is should I use ?x rdf:type Employee or ?x rdf:type
ContractEmployee or PermanantEmployee
Depends on your set up.
You could have an inference model with the appropriate configuration to
deduce membership of employee and then query that with SPARQL or with a
second inference model with your own rules in.
If you want just one layer of rules and want to combine OWL/RDFS with your
custom rules then that's possible (so long as you set all the appropriate
flags, see documentation) but make sure that your own rules are backward
not forward rules. [The default Jena rule sets for RDFS and OWL are hybrid
rules so some of the inferences are only available to backward rules in the
same rule set.]
Or if you don't want the cost of full inference then you can indeed
rewrite the "natural" query to explicitly check for the base memberships.
Dave