Human Interface

From MWCSWiki

Jump to: navigation, search

SemanticWarehouseProject

--Stephen 14:21, 7 April 2008 (EDT) Notes from Stephen/Trillane meeting 4/7/08:

Semantic searching:

  • All queries are ANDs, not ORs
  • As conditions are added to a query, the query results list is repeatedly refined in real time for the user. User can always see (1) the widgets to add a new condition, (2) English text describing the current set of conditions, and (3) the current results list.
  • User can specify he wants to see objects that are in particular roles, and also optionally those that have fields (of those roles) that have particular values (greater than / less than / equal to)
  • Fields and relationships show up in the same box; when a field is active in the box, a text box and >/</== radio buttons appear to specify the value. When a relationship is active, this is replaced by a box that lets the user specify the object that the query result should be related to. This can be (a) a specific object, (b) "any," or (c) the result of a previously constructed subquery (see below.)

Subqueries:

  • In order to handle "find all people married to tall, dark and handsome men," we allow a subquery, composed of a conjunction of conditions, to be named and saved. This can then be used as a modular component in future queries.

Example:

  • User creates a query. He says, "find all objects that are in the person role and that have height over 6'2." He adds this condition. The "current conditions" now says "persons over 6'2" and the results list shows all such persons. He then says, "add condition that object is in the person role and has skin is dark." This is added to current conditions, and results list is now refined to include ONLY tall and dark people. He then adds, "add condition that object is in the person role and face is handsome." Current condition and results list are updated again. User now names subquery (somehow) "Tall, Dark, and Handsome." User then creates a new query. He says, "find all objects that are in the spouse role that are married to any Tall, Dark, and Handsome," thus completing the query.
  • Note: for usability, user should be able to begin the "married to" query, and then "subroutine" out to create the "tall, dark, handsome" query, and return to the "married to" query without becoming disoriented.


--Trillane 16:01, 30 March 2008 (EDT)
I've gone off the idea of XML, but I still think the .display() can work.


--Trillane 11:27, 23 March 2008 (EDT)
I've been thinking about the display. The more I think about it, I think that we could use XML and create our own tags (which can be formatted through css) so we would have a an <object id="http://okm.edu/#AbrahamLincoln> tag, and <roleplayer id="President"> <relationship id="signed"> etc. I'm still working through the details, but I think that if we work this right, we can have classes have a display() method. We would have to overload it for each class and it wouldn't be "complete" i.e. I couldn't just call RolePlayerObject.display() and have it display all the relationships and fields, instead it would just return something like <a href="http://someURI" id="http://anObjectURI&aRoleplayerName">Human Readable Name</a>



--Trillane 20:48, 3 February 2008 (EST)
Things I need to know to create a basic user interface (just for us, for initial testing) How will the domain pass back an individual URI (Abe Lincoln, or Stephen's Waterbottle, etc.) I assume an enumeration of "Oklahoma's". Each enumeration would contain a hashtable of key value pairs.

URI Abe Lincoln Person "Oklahoma"

  • Static data
    • (key)-> Height : (value)-> 6'2"

Spouse "Oklahoma"

  • Relationship data
    • (key)-> (URI-Link) -> Married to: (value)-> (URI-Link)->Mary Todd Lincoln

From our previous meetings, I was under the impression that clicking the Married to would bring up the Abe Lincoln married to Mary Todd Lincoln "page". It could just be drop down in the original "Oklahoma" under the initial relationship pair. Which would then have it's own Static or Relational fields.

Also, I'll have a dummy interface (practical, not pretty) for our use this week. As soon as we've finalized the domain class interface, I'll be able to make it work.

--Trillane 20:58, 5 February 2008 (EST)


Need to be able to handle to URI's with the same human readable name.


For the input, I'm having trouble envisioning this. Are making the user go through screens like a wizard (i.e. page 1, make an object. Page 2 validate object. page 3 make another object or relationship, page 4 ect.

Or do they get a single screen that prompts them as they progress? I.e. 5 boxes on one page, as each box is populated the validation happens, using Ajax.

Something like:

Please enter your information as "Abraham Lincoln" "Spouse" "Married To" "Marry Todd Lincoln" "Spouse"
{combo box}{combo box}{combo box}{combo box}{combo box}

Ajax generated content here


Personal tools