2016-04-04 22 views
0

Ben 150 konuların üzerinde sahip ve her konu ben deffacts yazma bilen ama burada sorun, ben her Sınıfı iki bilgiye sahip olmasıdırGerçeklerin JESS'de alt gerçekleri olabilir mi?

> Subject: CS222 
> Pre-requisite: CS111 
> Units: 4 
> Priority-lvl: 3 
> Semester-offered: 2 
> Class: A 
>  Schedule: 9:00am - 10:00am (Mon & Wed) 
>  Slots Available: 30 
> Class: B 
>  Schedule: 9:00am - 10:00am (Tue - Thurs) 
>  Slots Available: 26 
> Class: C 
>  Schedule: 12:00nn - 01:30pm (Mon - Wed) 
>  Slots Available: 10 

benim deffacts koymak istiyorum şu bilgileri (var Bu açıkça subfact olur) ve ben bu bilgileri deffacts dönüştürmek için bilmiyorum.

Aşağıdaki gibi bilgilerle 4 tane etki çıkartabileceğimi biliyorum ancak kodu verimli bulmuyorum. Yukarıdaki bilgileri etkisiz hale getirmenin başka bir yolu var mı? Eğer bellek tüketimi hakkında endişe duyuyorsanız

(Deffacts subject 
    (subject-information 
      (name CS222) 
      (identifier 1) 
      (pre-requisite CS111) 
      (priority-lvl 3) 
      (units 4) 
      (semester-offered 2))) 

(Deffacts Ident 
    (ident-class 
       (identifier 1) 
       (class A) 
       (schedule 0900-1000MW) 
       (stud-avail 30))) 

(Deffacts Ident 
    (ident-class 
       (identifier 1) 
       (class B) 
       (schedule 0900-1000TTH) 
       (stud-avail 26))) 

(Deffacts Ident 
    (ident-class 
       (identifier 1) 
       (class C) 
       (schedule 1200-0130MW) 
       (stud-avail 10))) 
+0

Sorularınıza "shell" etiketini eklemeyin. – laune

+0

Ekliyordum çünkü JESS'in kabuğun kendisi olduğunu sanıyordum. –

cevap

0

: 150 konu ve her biri için bir kaç sınıfların her yerde bir OutOfMemory durum neden yakın değildir.

Yürütme süresi açısından "verimlilik" konusunda endişeleriniz varsa, bu gerçeklere erişen kurallara bağlı olduğunu söyleyemem. İki farklı ölçüden birini kullanarak veya tek bir tanesiyle sıkıştırmak, verilere erişen kurallarda yapmak istediğiniz şeye göre daha iyidir. Genellikle listelerin özelliklerden kaçınması ve ilişkisel modele, yani sahip olduklarınıza bağlı kalması en iyisidir.

Ham veride "tanımlayıcı" yuvası görünmüyor. Sınıf gerçeklerini konuyla ilişkilendirmek için onu tanıtmışsınızdır. Bunun yerine konu adını kullanmak tercih edilebilir.

+0

Sanırım yolunu takip edip tanımlayıcıyı kaldırırım, böylece 4 tane defaha ihtiyacım olmaz. Teşekkür ederim! –

+0

Yaptığım gibi * tavsiye etmiyorum - hala 4 gerçekle birlikte kalacaksınız. Ve (en azından işleme kurallarını bilmeden) Ben *, tekrar etmeyin: hepsini bir çok büyük veri topluluğuna koymanızı önerin (multislot kullanarak). – laune

+0

Hanımefendi, demek istediğim, tanımlayıcıyı kaldıracağım ve bunun yerine konu adını kullanacağım. Bu hala beni 3 gerçekle bırakır. –

İlgili konular