Ημερομηνία Σάβ Μάιος 11, 2024 4:28 pm

4η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ 2011 - 2012

Προβολή ενεργών θεμάτων

Όλοι οι χρόνοι είναι UTC + 2 ώρες


Κλειδωμένη Δ. Συζήτηση Αυτό το θέμα είναι κλειδωμένο, δεν μπορείτε να επεξεργαστείτε δημοσιεύσεις ή να δημοσιεύσετε άλλες απαντήσεις  [ 130 δημοσιεύσεις ]  Μετάβαση στην σελίδα Προηγούμενη  1 ... 8, 9, 10, 11, 12, 13  Επόμενο
Συγγραφέας Μήνυμα
 ΔημοσίευσηΔημοσιεύτηκε: Δευτ Απρ 02, 2012 10:38 pm   

Εγγραφη: Τρί Μαρ 09, 2010 4:55 pm
Δημοσ.: 106
Τοποθεσια: Ηράκλειο
Any help? Καταλαβαίνω σχεδόν όλοι έχετε παραδώσει και τώρα ξεκούραση :-)


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τρί Απρ 03, 2012 11:44 am   
Άβαταρ μέλους

Εγγραφη: Δευτ Νοέμ 14, 2011 6:10 pm
Δημοσ.: 54
Τοποθεσια: Αθήνα
diegito έγραψε:
Καλημέρα σας.

Καλή ξεκούραση σε όσους παρέδωσαν.

Εγώ πήρα την εβδομάδα παράτασης και ουσιαστικά ξεκινάω από σήμερα μετά από την μελέτη των tutorials και κάποιους πειραματισμούς στο Protege.

Θα ήθελα να ρωτήσω κατά την δημιουργία νέου project στο Protege επιλέγουμε OWL / RDF Files ναι? Στο ontology URi πρέπει να βάλουμε κάποιο valid urlνομίζω ναι αλλά όχι απαραίτητα και να υπάρχει στο internet, εγώ έβαλα http://www.owl-ontologies.com/1a.owl? Και τέλος στο Language Profile τι επιλέγουμε? (OWL Full / OWL DL / OWL Lite) έβαλα το OWL Full

Όσον αφορά το object property "hasPerson" στο 1α μεταξύ Department και Person και μεταξύ Project και Person πρέπει να φτιαχτεί 2 φορές και με διαφορετικό όνομα υποθέτω?ναι δεν μπορείς να το φτιάξεις δύο φορές με το ίδιο όνομα οπότε άλλαξέ του λίγο το όνομα τουλάχιστον την μία φορά. π.χ. hasPersonDepartment και hasPersonProject

Χρειάζεται να χαρακτηρίσουμε τις σχέσεις ως functional, symmetric κτλ?
θεωρητικά αν κάπου νομίζεις ότι αυτό χρειάζεται ναι, εγώ πάντως δεν το έκανα κάπου.

Τέλος στο 1δ το check θα γίνει πατώντας το "check consistency" ή και κάτι άλλο?
ναι check consistency. Εγώ δεν είχα κάποιο λάθος, αφού είχα πειραματιστεί πολύ με τα tutorials του owl πριν ξεκινήσω να το φτιάχνω, κι έτσι δημιούργησα ένα λάθος ώστε να πάρω error και να το διορθώσω στη συνέχεια

Ευχαριστώ


Με κόκκινο οι απαντήσεις στις ερωτήσεις σου.


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τρί Απρ 03, 2012 8:51 pm   

Εγγραφη: Παρ Οκτ 15, 2010 8:44 pm
Δημοσ.: 248
Τοποθεσια: Πάτρα
Δεν ξέρω πόσοι απο'δω παραδόσανε εγκαίρως. Εγώ πάντως κατέληξα να ζητήσω παράταση, λόγω κάποιων υποχρεώσεων, οπότε τώρα σιγά-σιγά ξαναπιάνω το δεύτερο θέμα.
Έχω όμως αρκετά προβλήματα και ήθελα να ρωτήσω αν κάποιος από εσάς είχε αντίστοιχα και πώς τα αντιμετώπισε.
Καταρχάς, έκανα τα πάντα με xml (widgets και enactors εννοώ) και ακολούθησα κυρίως τα παραδείγματα του HelloRoom παρά το tutorial (κανονικά δε θα'πρεπε να είναι ίδια;). Σ' αυτή τη φάση έχω καταφέρει να μου τρέχει η εφαρμογή ΜΟΝΟ για την κατάσταση του θερμοσίφωνα (αν το βάλω να υλοποιεί κι άλλα Services βγάζει διάφορα errors που δεν μπορώ να εντοπίσω προς το παρόν από τι προκαλούνται) και ενώ το interface φαίνεται να λειτουργεί κανονικά, δεν αλλάζει τιμή από "off" σε "on", ακόμα κι αν του δώσω αριθμητικούς κανόνες (όχι μεταβλητές δλδ). Έχει κανείς καμιά ιδέα γιατί μπορεί να συμβαίνει αυτο;


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τρί Απρ 03, 2012 9:47 pm   

Εγγραφη: Τρί Μαρ 09, 2010 4:55 pm
Δημοσ.: 106
Τοποθεσια: Ηράκλειο
@taghor σε ευχαριστώ πολύ!

Πάντως έχω την εντύπωση ότι αν δεν βάλουμε restrictions , δεν βάλουμε disjoint σε κλάσεις, δεν χαρακτηρίσουμε τις σχέσεις inverse/functional/transitive/symmetric μου φαίνεται ότι δεν υπάρχει περίπτωση να μας βγεί κάποιο λάθος στην συνέπεια της οντολογίας. Κάνω λάθος? Χρειάζεται όμως εφόσον στο σχήμα δεν φαίνεται σχετική πληροφορία να βάλουμε τις παραπάνω ιδιότητες στις σχέσεις?


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τετ Απρ 04, 2012 11:03 am   
Άβαταρ μέλους

Εγγραφη: Δευτ Νοέμ 14, 2011 6:10 pm
Δημοσ.: 54
Τοποθεσια: Αθήνα
Έχεις δίκιο diegito. Απλά δεν νομίζω ότι από κάπου στο σχήμα μπορούν να προκύψουν αυτά τα restrictions. Το μόνο που έβαλα εγώ ήταν mutual disjoints σε όλα τα classes ίδιου επιπέδου (σε κάθε επίπεδο όλα είναι mutual disjoint μεταξύ τους). Η αλήθεια είναι ότι βγαίνει σχετικά απλή η οντολογία για να έχει κάποιος λάθη πάντως.

@Wazka: μπορείς να φτιάξεις πολλά services. Εγώ έτσι το έκανα και παίζει καλά. Το πρόβλημα είναι ότι στον enactor μπορείς να έχεις μόνο ένα outcome ανά κανόνα. Έτσι αν ας πούμε θέλεις όταν το input πάρει τιμή Χ να αλλάξουν 2 outputs θα πρέπει να φτιάξεις δύο κανόνες (προσοχή όλοι οι κανόνες πρέπει να έχουν διαφορετικό όνομα, καθώς και όλα τα queries) όπου ο κάθε κανόνας θα αλλάζει και από ένα output.
Επίσης θα πρέπει όπου αλλάζει στο swing component ένα value να το αλλάζεις και στο widget χρησιμοποιώντας το widget.updateDate("name", value); Αυτό θα πρέπει να μπει μέσα στον action listener του κάθε input component ώστε σε κάθε αλλαγή που κάνεις από το gui να αλλάζει και η τιμή που γνωρίζει το widget.

Γενικώς πάντως η εικόνα που σχημάτισα από το context toolkit μου δείχνει ένα εργαλείο που ακόμα είναι υπό εξέλιξη (για παράδειγμα αυτό με το ένα output ανά κανόνα γράφει κάπου στο tutorial ότι δεν θέλουν να είναι έτσι αλλά είναι έτσι προς το παρόν) και πολύ, μα πολύ κακό error handling αφού όταν υπάρχει ένα λάθος δεν βλέπεις πάντα κάποιο exception ώστε να καταλάβεις ότι κάτι πάει στραβά αλλά και στις πρειπτώσεις που βλέπεις αυτό είναι τελείως παραπλανητικό και άσχετο με το πραγματικό λάθος.


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τετ Απρ 04, 2012 1:36 pm   

Εγγραφη: Παρ Οκτ 15, 2010 8:44 pm
Δημοσ.: 248
Τοποθεσια: Πάτρα
Σ' ευχαριστώ πολύ taghor! Πολλά απ' αυτά που αναφέρεις τα είχα υπόψη μου ήδη, αλλά το θέμα με το ένα outcome ανά κανόνα δεν το είχα προσέξει καν... :oops:
Ωστόσο, κάνοντας όλα όσα αναφέρεις, εξακολουθώ να έχω το εξής πρόβλημα: Όλα λειτουργούν κανονικά σε πρώτη φάση (δεν έχω errors και εμφανίζεται το UI όπως το έχω σχεδιάσει). Για την ώρα και τα λεπτά έχω ορίσει 2 JSpinners, και το αποτέλεσμα τους ενημερώνεις τις αντίστοιχες μεταβλητές του input. Από την άλλη, έχω ορίσει μια attribute στο input-widget η οποία ονομάζεται time και είναι ως εξής:
Κώδικας:
<Attribute name = "time" type = "int">(hour * 60) + minute </Attribute>

Αυτό του ζητάω να το κάνει update και μέσα στην εφαρμογή, στο initial state του widget, αλλά δυστυχώς, δεν έχω βρει τρόπο να το κάνω μέσα στους listeners (εφόσον αφορούν σε interface για διαφορετικά attributes, δηλ. το hour και το minute). Όμως, εφόσον έχω ορίσει ποια πρέπει να είναι η τιμή του attribute ((hour * 60) + minute) δε θα'πρεπε να το κάνει εκεί; Αντιθέτως, έχω καταλήξει αποκλείοντας άλλα ενδεχόμενα, ότι η τιμή του time δε γίνεται update πουθενά, γι' αυτό και δεν αλλάζουν οι τιμές της θερμοκρασίας του νερού και η κατάσταση του θερμοσίφωνα.
Άλλη εναλλακτική είναι να μην έχω ορίσει σωστά τους κανόνες, αλλά εκεί έχω δοκιμάσει πάρα πολλές εναλλάκτικες και δεν μπορεί! Κάποια απ' αυτές κάτι θα έκανε...


edit: Μόλις επιβεβαίωσα τη θεωρία μου! Δεν κάνει κανένα update για τη μεταβλητή time! Προφανώς κάτι δεν έχω γράψει σωστά, αλλά από την άλλη, επειδή δεν ξέρω καθόλου από xml και από το ψάξιμο που έκανα δε βρήκα τίποτα, δεν ξέρω πως να το χειριστώ... Καμία πρόταση;


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τετ Απρ 04, 2012 2:53 pm   
Άβαταρ μέλους

Εγγραφη: Δευτ Νοέμ 14, 2011 6:10 pm
Δημοσ.: 54
Τοποθεσια: Αθήνα
Εγώ χειρίστικα το time με ένα και μόνο JSpinner που έπαιρνε Date οπότε δεν είχα 2 μεταβλητές παρά μόνο μία. Η μετατροπή σε μεταβλητή τύπου long ενός date σε java είναι πολύ εύκολη αφού και η Java στην ουσία χειρίζεται τα Dates σαν longs. Πάντως και με τη δική σου προσέγγιση πιστεύω ότι μπορεί να παίξει σωστά αν εξαιρέσεις ότι κάνεις κάποια λαθάκια (από αυτά που λες - δες παρακάτω).
Καταρχήν νομίζω ότι το <Attribute name = "time" type = "int">(hour * 60) + minute </Attribute> μέσα στο input widget δεν κάνει τίποτα. Στο input widget, όπως και στο output απλά ορίζεις το όνομα και τον τύπο των attributes. Δεν μπορείς να βάλεις και να τα υπολογίζει. Αυτό το κάνεις είτε στον enactor (μέσω κανόνων) είτε με κώδικα.
Έτσι θα πρέπει να κάνεις το <Attribute name = "time" type = "int">(hour * 60) + minute </Attribute> σε
<Attribute name = "time" type = "int" /> και μετά θα κάνεις το εξής:
στον ChangeListener και των 2 JSpinners που έχεις θα παίρνεις τις τιμές και των δύο τιμών προγραμματιστικά (hour και minute) και θα κάνεις update την τιμή του time.
Για να το πετύχεις αυτό μπορείς να κάνεις μέσα στον κώδικα του changelistener του hour και του minute:
int hour = inputWidget.getNonConstantAttributeValue("hour");
int minute = inputWidget.getNonConstantAttributeValue("minute");
int time = 60* hour + minute;
inputWidget.updateData("time", time);

και φυσικά αυτό που κάνεις ήδη, δηλαδή να πάρεις την τιμή της μεταβλητής από το jspinner (hour ή minute) και να την κάνεις update στην αντίστοιχη μεταβλητή του widget.


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τετ Απρ 04, 2012 5:06 pm   

Εγγραφη: Σάβ Δεκ 25, 2010 11:31 pm
Δημοσ.: 147
Τοποθεσια: Πύργος
Πως τα πάτε/πήγατε γενικά με το 2ο θέμα; Εγώ αν και πήρα παράταση έχω μπερδευτεί πάρα πολύ με το Context Toolkit αλλά και με το σενάριο του θέματος και βλέπω να παραδίδω σαχλαμάρες...


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τετ Απρ 04, 2012 5:20 pm   

Εγγραφη: Σάβ Δεκ 25, 2010 11:31 pm
Δημοσ.: 147
Τοποθεσια: Πύργος
Επίσης ξέρει κανείς αν μπορούμε να χρησιμοποιήσουμε παραπάνω από ένα Input widgets σε έναν enactor? (για τα output widgets σίγουρα δεν γίνεται). Υπάρχει και αντίστοιχη ερώτηση στο επίσημο forum, αλλά δεν έχει απαντηθεί...


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Τετ Απρ 04, 2012 5:36 pm   
Άβαταρ μέλους

Εγγραφη: Δευτ Νοέμ 14, 2011 6:10 pm
Δημοσ.: 54
Τοποθεσια: Αθήνα
nby έγραψε:
Επίσης ξέρει κανείς αν μπορούμε να χρησιμοποιήσουμε παραπάνω από ένα Input widgets σε έναν enactor? (για τα output widgets σίγουρα δεν γίνεται). Υπάρχει και αντίστοιχη ερώτηση στο επίσημο forum, αλλά δεν έχει απαντηθεί...


Από το tutorial του context toolkit (http://www.contexttoolkit.org/?p=120)
Each enactor takes one widget for input, and another for output:
Παράθεση:
Each enactor takes one widget for input, and another for output


Κορυφή
 Προφίλ  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση κατά  
Κλειδωμένη Δ. Συζήτηση Αυτό το θέμα είναι κλειδωμένο, δεν μπορείτε να επεξεργαστείτε δημοσιεύσεις ή να δημοσιεύσετε άλλες απαντήσεις  [ 130 δημοσιεύσεις ]  Μετάβαση στην σελίδα Προηγούμενη  1 ... 8, 9, 10, 11, 12, 13  Επόμενο

Όλοι οι χρόνοι είναι UTC + 2 ώρες


Μελη σε συνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group •
Μετάφραση Jorfan και phpBB2.gr
Style originally created by Volize © 2003 • Redesigned SkyLine by MartectX © 2008 - 2009