import-bot (20212) [Avatar] Offline
#1
Re: defquery returning MAIN::initial-fact
[Originally posted by steven.warren]

Thank you very much for such a quick reply! Indeed, using fact 2 is the answer
I need.
Perhaps it's because I have only read the JIA book, but my understanding of
queries is incomplete. I'll work on it!

Regards
Steve

PS Happy Thanksgiving!
import-bot (20212) [Avatar] Offline
#2
Re: defquery returning MAIN::initial-fact
[Originally posted by ejfried]

The interface to run-query is really ugly, and a complete overhaul is in the
works for Jess 7 which is much nicer. Instead of being token/fact based, it
simply gives you access to the named variables in your query; it uses a JDBC
ResultSet-like interface to step between records.
import-bot (20212) [Avatar] Offline
#3
Re: defquery returning MAIN::initial-fact
[Originally posted by steven.warren]

Cool!
import-bot (20212) [Avatar] Offline
#4
[Originally posted by steven.warren]

Hi, I have just started learning JESS and can't figure out a problem I am
having with a defquery. For some reason this defquery (findAMV) is returning a
MAIN::initial-fact rather then an MAIN::account-market-value fact. Can you
tell me why, I am stuck!

---CLP---
;;
;; Templates
;;
(deftemplate asset (slot id) (slot ticker))
(deftemplate price (slot asset) (slot amount))
(deftemplate portfolio (slot id) (slot name) (multislot accounts) (multislot
modeltargets))
(deftemplate account (slot id) (slot name) (multislot holdings))
(deftemplate holding (slot id) (slot asset) (slot quantity) (slot market-value
(default 0.0)) (slot inAMV (default false)))
(deftemplate portfolio-market-value (slot id) (slot market-value))
(deftemplate account-market-value (slot id) (slot market-value))

(do-backward-chaining portfolio-market-value)
(do-backward-chaining account-market-value)

;;
;; Facts
;;
(deffacts assets
(asset (id 1) (ticker "IBM"))
(asset (id 2) (ticker "MSFT"))
(asset (id 3) (ticker "SUNW")))

(deffacts portfolio
(portfolio (id 1) (name "P1")
(accounts
(assert (account (id 1) (name "A1")
(holdings
(assert (holding (id 1) (asset 1) (quantity 150)))
(assert (holding (id 2) (asset 2) (quantity 50)))
(assert (holding (id 3) (asset 3) (quantity 500)))
)))
(assert (account (id 2) (name "A2")
(holdings
(assert (holding (id 4) (asset 1) (quantity 150)))
(assert (holding (id 5) (asset 3) (quantity 300)))
)))
)
))

(deffacts prices
(price (asset 1) (amount 20.00))
(price (asset 2) (amount 35.50))
(price (asset 3) (amount 300.50)))

;;
;; Queries
;;
(defquery findAMV
(declare (max-background-rules 5) (variables ?id))
(account-market-value (id ?id)))

;;
;; Rules
;;
(defrule calc-portfolio-market-value
(need-portfolio-market-value (id ?id) (market-value ?))
(portfolio (id ?id) (accounts $?accounts))
=>
(bind ?cmv 0.0)
(foreach ?account ?accounts (progn
(bind ?it (run-query findAMV (fact-slot-value ?account id)))
(bind ?amv (call (call ?it next) fact 1))
(printout t (?amv toStringWithParens) crlf)
(bind ?cmv (+ ?cmv (fact-slot-value ?amv market-value)))))
(assert (portfolio-market-value (id ?id) (market-value ?cmv))))

(defrule calc-account-market-value
(need-account-market-value (id ?id))
(account (id ?id) (holdings $?holdings))
=>
(bind ?cmv 0.0)
(foreach ?holding ?holdings (bind ?cmv (+ ?cmv (fact-slot-value ?holding
market-value))))
(assert (account-market-value (id ?id) (market-value ?cmv))))

(defrule holding-market-value
?holding <- (holding (asset ?asset) (quantity ?q&smilieneq ?q 0)) (market-value
?mv&smilieeq ?mv 0.0)))
(price (asset ?asset) (amount ?amount&smilieneq ?amount 0.0)))
=>
(modify ?holding (market-value (* ?q ?amount))))

(defrule portfolio-market-value
(portfolio-market-value (id 1) (market-value ?pmv))
=>
(printout t ?pmv crlf))

(reset)
(facts)
(watch all)
(run)
import-bot (20212) [Avatar] Offline
#5
Re: defquery returning MAIN::initial-fact
[Originally posted by ejfried]

This is an interaction between the defquery on the account-market-value
template and the fact that this template is marked as backward chaining
reactive. When the very first pattern in a rule or query is reactive, the
"initial-fact" pattern has to be inserted before it to make backward chaining
work (the assertion of the initial-fact then drives the backward chaining.)
You're seeing this query in your pattern result. One solution is to use the
"explicit" conditional element to tell Jess not to bother to do backward
chaining on this pattern -- i.e., the query should return only facts that
match and that already exist.

But since you've specified max-background-rules, you may indeed want Jess to
do backward chaining to find possible new facts to satisfy the query. In that
case, just adjust your code to use the third fact in the query token (fact 2)
instead of the second (fact 1).
klewart (1) [Avatar] Offline
#6
Re: defquery returning MAIN::initial-fact
Hi people,
I too am new to Jess. I tried this query , it works

engine.executeCommand("(defquery searchTest (declare (variables ?X)) (http://www.w3.org/1999/02/22-rdf-syntax-ns#type ?X ?Y))");

engine.run();

engine.executeCommand("(store RESULT (run-query searchTest http://www.owl-ontologies.com/unnamed.owl#John ))");

It replies John is an instance of a class Person.

Similarly, how do i ask a query like whether is john a instance of a particular class or not.
In short , how do i frame a query which replies yes or no.

I am totally stuck , please help me with this..
candycandy (1) [Avatar] Offline
#7
Re: defquery returning MAIN::initial-fact
การใช้งานกีฬานั้นยังสามารถที่จะช่วยให้เราผ่อนคลายจากการที่เรานั้นได้เครียดจากโลกปัจจุบันนี้ เครียดจากงาน หรือเครียดจากการเรียนฟุตบอลนั้นก็คงจะเป็นตัวระบายทางความเครียดได้ดีอย่างหนึ่ง กิจกรรมเกมวางเดิมพันเสี่ยงลุ้นอย่างเกมคาสิโนนั้นเป็นเกมที่ผู้รักในการเสี่ยงโชคเป็นพิเศษบุคคลที่มีเซ้นส์หรือถูกโฉลกกับผู้เล่นเกมเล่นพนันมักจะนำกิจกรรมเช่นนี้มาเป็นเกมการสันทนาการในยามว่างและในวันนี้ก็มีความนิยมมากขึ้นจากผู้เล่นที่รักความท้าทายโดยเฉพาะอย่างยิ่งวิถีทางการใช้งานวางพนันที่ต่างไปจากอดีตเนื่องจากเทคโนโลยีความก้าวหน้าที่เดินหน้าต่ออย่างไม่หยุดยั้งบนโลกใบนี้ ผลฟุตบอล สำหรับผู้เล่นกีฬานั้นถือว่าเป็นประโยชน์ต่อเราทุกคนนะคะไม่ได้จำกัดว่าเพศไหน หรือเพศใดก็ตามกีฬานั้นก็ถือว่าเป็นสิ่งที่เป็นประโยชน์ต่อตัวเรานั่นแหละค่ะทั้งการใช้งานเองในสนามหรืแม้แต่การดูเชียร์ที่ให้ความบันเทิงใจ casino online สำหรับการใช้งานกีฬาในแต่ละอย่างนั้นมักจะมีประโยชน์ที่แตกต่างกันมากแล้วผู้เล่นของแต่ละกีฬาค่ะเพราะกีฬาแต่ละกีฬานั้นมักจะใช้การเคลื่อนไหวที่แตกต่างกันอยู่บ้าง โลกการสื่อสารไร้พรหมแดนอย่างเครือข่ายอินเตอร์เนตมาประยุกต์กับแหล่งบริการเกมวางเดิมพันที่จากเดิมนั้นมีการตั้งเป็นสถานที่บนสิ่งปลูกสร้างที่เรียกว่าบ่อนคาสิโนแต่วันนี้แหล่งบริการเกมวางเดิมพันเหล่านั้นสามารถเข้าถึงได้โดยการร่วมเล่นบนโลกไซเบอร์ที่เรียกว่าแหล่งแนวทางเกม princess crown Slot Online ม้าแข่ง ฯลฯ ไม่ต้องเดินทางไปถึงเขมร เล่นง่าย อยู่บ้านก็รวยได้ ลุ้นมันผ่านระบบออนไลน์ Internet ความเร็วสูง วิธีการเล่นคาสิโนและการพนันทุกชนิดจะมีเคล็ดลับกลวิธีในผู้เล่น "ไม่ใช่การโกง" แต่เป็นกลยุทธเชิงสถิติที่นำไปสู่การชนะได้ วิธีเล่นพนันโดยทั่วไปมักไม่มีกลยุทธครบครันเล่นสนุกหรือเล่นแบบเอาเป็นเอาตาย แต่วันนี้เราจะทราบถึงเทคนิควิธีการเล่นแบบง่าย ๆ ใครก็ทำได้แต่ต้องใจถึง คือ วิธีการเล่นแบบทวีคูณชนะแล้วหยุด วิธีเล่นแบบนี้คุณจำเป็นจะต้องคำนวณ อัตราส่วนการวางเดิมพันต่อครั้งและจำนวนครั้งที่แทง ตัวอย่าง คุณต้องวิธีการเล่น ให้ได้กำไร 1000 ท่าน ต้องใช้ทุนเท่าไรในการเล่น รอบที่ 1 แทง 1000 ไม่ถูกแทงเพิ่มรอบที่ 2 2000 ถ้าไม่ถูกก็จะต้องแทงเพิ่ม 4000 ในรอบที่ 3 สูตรคำนวณ ง่าย คือ เอาทุนบวกกันแล้ว บวก ผลประโยชน์ที่ต้องการ ง่าย ๆ ค่ะแต่ได้แน่นอน แต่ก่อนอื่น ไม่ใช่ว่าจะต้องเขาไปแทงไม่ดูตาม้าตาเรือ มันต้อง เก็บสถิติเสียก่อนว่า จะแทงฝ่ายไหน เช่น การใช้งาน บาคาร่า มันออกฝั่งไหนมากสุด ก็เลือกเล่นฝ่ายนั้น จากนั้นลงมือเล่น ตามสูตร แต่ต้องใจแข็งนะค่ะเพราะว่ามันจะกดดันมากถ้าแทงหลายรอบแล้วยังไม่ออก แต่อย่าถอยเด็ดขาดเสียเป็นเสียแล้วมันชนะแน่นอน เพราะขอให้ชนะครั้งเดียวพอแล้ว แล้วหยุดพักค่อยมาเล่นใหม่ทำแบบนี้ไปเรื่อย ท่านเป็นผู้ชนะตลอด ขอให้โชคดีทุกคุณ (การพนันทุกหมวดมีความเสี่ยงอันนี้ไม่รับประกันนะค่ะsmilie แต่กระนั้นในสังคมการดูชมกีฬาอย่างฟุตบอลนั้นก็มีเรื่องของวิธีเล่นวางพนันผลการแข่งขันมาเอี่ยวทุกครั้งที่เกิดการแข่งขันกีฬาฟุตบอลเลยก็ว่าได้หรือในภาษาบ้านบ้านว่า gclub หลายคนในวันนี้ต้องได้ยินแต่ใครๆที่กล่าวถึงฟุตบอล ฟุตบอล แล้วก็ฟุตบอลซึ่งนั่นก็ถือว่าเป็นกีฬาชนิดหนึ่งซึ่งแน่นอนว่าเป็นกีฬาที่นิยมอย่างมากเสียด้วยสิ
398617 (1) [Avatar] Offline
#8
Thanks for Data.


goldenslot
gclubslot
459627 (1) [Avatar] Offline
#9
??????????????????????????? ????? ??????? ??????? ???????????????????????????????? ??????????????????????????????? ???????????????????? ??????? ?????????? ?????? ???????????