********************************************************************************
*** Last-Modified: $Date: 2001/03/16 09:11:49 $ 
*** Version: $Id: TODO,v 1.69 2001/03/16 09:11:49 burton Exp $
*** Author: Kevin A. Burton ( burton@apache.org | burton@openprivacy.org )
********************************************************************************
  
= ===============================================================================
= PRIORITY                                                                      
= ===============================================================================



SimpleQueryEngine should probably use Hypersonic SQL and it should have a
property interface so that 

PropertyManagerPayloadImpl should become PropertyManagerPayload.  We need to
write out a quick mechanism that saves this info to Hypersonic SQL.  This should
allow us REALLY fast data access.  

      Need to setup tables for this so that we can have a reputation URI, identifier, 

      The Result we should have are just lists of reputation:// URIs which we
      can pull from the store.

Need to change the getReputation method to support objects instead of URIs.

     - need to come up with an alternative name for Query.  This should be
       something like Query but different for future sake.

     - Come up with some basic impls.
       - URIQuery (get the general consensus for this URL) ???
       - PropertyPayloadQuery 

            
TODO:



- determine the correct RCE by the type of URI requested.  This should allow the
  the administrator (and the object) to deploy the RCE and add some regexps
  based on the URI requested.  A good example of this if you get an RSS feed via
  OCS you should be able to run queries on the original OCS Server if it happens
  to be running Sierra or a reputation server.  Maybe the OCS feed could contain
  additional markup for pointing to a Reputation server.

- JetsPeek support.  JS should run on top of Sierra and fetch a basic RCE as a
  component.  This might be a composite RCE/etc but it doesn't matter.  JS
  should add an additional payload to a Reputation so that each keyword and
  reputation space counts (show me RSS channels with a description of "java"
  with a reputation of "Good")

- Documentation for sierra... sierra.openprivacy.org  
  
  FIXME: do reputations need multiple payloads??????????  How do we query
  multiply payloads.

  FIXME: need to define a way to store reputations.. ReputationStore?  This
  should possibly be a persistent way to store and retrieve reputation based on
  events from an RCE.putReputation.  It should also be able to restore an RCEs
  state after shutdown/restart.  We need a strong object hierarchy/factory for
  handling this.
      
  - Use Case: should the "popularity" of a URL also be published?  This could
    be the total number of opinions cast... this might need to have a start and
    end date.
        - with reputations taken into account.
        - this could become just a query...

       
= ===============================================================================
= END MILESTONES
= ===============================================================================


- should the SOAPServerRCE be pointed to another impl RCE which is local?  This
  would be needed to make sure that the SOAPServerRCE works with a
  SOAPClientRCE. 


        
  
= ===============================================================================
= GENERAL REQUIREMENTS                                                          
= ===============================================================================

  - XML for adding an ontology:
  
  <ontology>

    <space>urn:OpenPrivacy</space>

    <concept name="Java">
        <range>
            <entry value="0" name="bad"/>
            <entry value="0" name="good"/>            
        <range>
    </concept>

    <concept name="Coffee">
        <range>
            <entry value="0" name="bad"/>
            <entry value="0" name="good"/>            
        <range>
    </concept>
    
  </ontology>
   

  - throw an UnknownOntologyException when data is entered which we don't know
    about.


    Opinion object
            URIReference getOntology();
            Value getValue()
            Concept getConcept()

    Concept
            String getName()   AKA "Java"
            String toString()
    
- Need a mechanism to register ontological namespaces.  This may also need to be
  done via SOAP so that remote objects can install their namespaces.

    - this should be a Talon component:  OntologyRegistry which is a singleton.
      This should have a persistence store so that when new Ontologies are
      registered if the server stops we can just reload old ontologies.

  - Note. This is probably something we don't have to worry about for right now
  
- Should the reputation object just have a Result URL or object which has more
  info??? URL,namespace which can then be parsed out and made polymorphic by the
  reputation server???

