semantic questions, rules, derivations

1 view
Skip to first unread message

David Donohue

unread,
Aug 27, 2009, 6:10:51 AM8/27/09
to inqle...@googlegroups.com
Hi Venki,
I hope your studies are going well and you do great on your exams.
This is for after you finish.

Here is the post that was helpful regarding semantic rules frameworks.
http://tech.groups.yahoo.com/group/jena-dev/message/40886

I will describe some use cases, to explore our requirements for
probabilistic rules framework:

Use Case #1: Determine which questions to ask a person.

Example:
Question1 = "In what year were you diagnosed with diabetes?"
Here is a rule determining when to ask this question
Rule1 determinesWhenToAsk Question1
Rule1 appliesWhenPredicate hasDiabetes
Rule1 appliesWhenValue true

I think we could use a SPARQL query to apply one such a rule to a Jena model
ASK {
?person hasDiabetes true
}

Use Case #2: Derive new information from a set of data.

Example: user responded "2000" for the year of the onset of their diabetes.
User1 providedAnswer Answer1
Answer1 isInResponseTo Question1
Answer1 hasValue "2000"

So we use a rule to determine how long they have had diabetes
Rule2 appliesToAnswersTo Question1
Rule2 implies Derivation1
Derivation1 createsPredicate hasHadDiabetesForYears
Derivation1 createsValue "currentYear() - $value"

So applying this rule to User1's data, we could flag that the rule
applies using SPARQL:
ASK {
?person providedAnswer ?answer
?answer isInResponseTo Question1
}

Now to apply Derivation1 would require Java or the like. We would
need to support some kind of scripting language to calculate values
and perhaps do string operations and the like. But the final output
of the derivation would be to create the statement
User1 hasHadDiabetesForYears 9

So you could apply these derivation rules to a user's datamodel of
answers, to create a temporary model containing relevant statements.
Next apply question rules, to determine which questions to ask.


Use Case #3: Derive new *probabilistic* information from a set of data
These are the kind of rules that your inqle module would generate, and
we might generate by hand using relevant scientific literature. So
say we had determined (either by running association rules experiment
or by manually reading and processing a scientific article) that use
of the drug metformin implies the person is diabetic, with 80%
certainty.

Rule3 appliesToSubjectsOfClass person
Rule3 appliesToIndividualsWithPredicate isOnMedication
Rule3 appliesToIndividualsWithValue "metformin"
Rule3 implies Derivation2
Derivation2 createsPredicate hasDiabetes
Derivation2 createsValue true
Derivation2 hasCertainty 0.8

Again, easy to apply the rule using SPARQL

ASK {
?person rdfs:Class foaf:Person
?person isOnMedication "metformin"
}

So this generates a probabilistic statement

Person1 hasDiabetes true [with 80% certainty]

Not sure how to represent such a probabilistic statement but I believe
Pronto might be the best framework for doing this.
http://pellet.owldl.com/pronto

Conclusions:
(1) We can probably use an existing rules RDF framework, or just
create our own simple framework (e.g. the above), without the need for
adding the complexity of probabilism. Rather, probabilism appears in
the consequent of a rule (the derived statements) and not in the
antecedant (the IF part).
(2) We can probably apply rules using SPARQL
(3) We probably want to store responses to questions in a semantic TDB
database, like an INQLE datamodel, then apply derivation rules to this
database, to create a derived model of relevant info. Next we apply
question rules to this derived model, to determine which questions to
ask.
(4) Different types of rules: rules to determine which questions to
ask, rules to determine which statements to derive.
(5) Potentially, pronto can handle all of our needs for probabilism.
(6) We will want our rules applying queries to honor semantic
reasoning, such that an individual of class "Policeman" is recognized
to be a foaf:Person.
(7) We could get a questioning rules engine working by creating these
Jenabean classes in inqle:
QuestionRule
DerivationRule
Question
Answer
Derivation

Best,
Dave

David Donohue

unread,
Aug 27, 2009, 6:52:12 AM8/27/09
to inqle...@googlegroups.com
A problem with pronto is it is AGPL3. Not commercial friendly. Also
it is "not production ready", at version 0.2. So we could consider
representing probabilistic statements using our home grown methods.

David Donohue

unread,
Aug 27, 2009, 11:42:20 AM8/27/09
to inqle...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages