#<HTML>
#<XMP>
# KEHOME/bin/mkrGetData
# rhm Jan/16/2003

# mkrGetData question
# rel ::=
#	isa | isu | iss
#	isc | isp | isg
#	isalt | ismem
#	isany | isall
# question ::=
#	subject is  ?
#	subject rel ?
#	subject has ?
#	subject has attribute = ?
#	subject do  ? done
#	subject do  action = ? done
#
#	subject ? object
#
#	? is  object
#	? rel object
#	? has attribute
#	? has attribute = value
#	? do  acion done
#	? do  action = event done

subject="$1"
verb="$2"
object="$3"
value="$5"

case "$subject" in
?)  
    case "$verb" in
    is)	 mkrGetData "$object" "is" ? ;;
    isa) mkrGetData "$object" "isc" ? ;;
    isu) mkrGetData "$object" "isp" ? ;;
    iss) mkrGetData "$object" "isg" ? ;;
    isc) mkrGetData "$object" "isa" ? ;;
    isp) mkrGetData "$object" "isu" ? ;;
    isg) mkrGetData "$object" "iss" ? ;;

    isa\*) mkrGetData "$object" isc* ? ;;
    isc\*) mkrGetData "$object" isa* ? ;;

    has)case "$object" in
	name) GetResource "$value";
	      echo "has $object = \"$value\"" >&2 ;;
	*)    GetData "$object" domain no ;
	      echo "has $object" >&2 ;;
	esac;; # end case $name
    haspart) mkrGetData "$object" isapart = ? ;;
    do) echo "# WARNING: actions not separated from other char." >&2 ;
	GetData "$object" domain no ;
	echo "do $object" done >&2 ;;
    *)  GetData "$value" "$object" yes ;
	echo "has $object = $value" >&2 ;;
    esac;; # end case $verb

*)
    case "$verb" in
    ?)  echo "WARNING: subject ? object not implemented" >&2 ;;

    is)	echo "# WARNING: 'is' not available; using 'isa' and 'has'" >&2 ;
	mkrGetData "$subject" isa ?;
	mkrGetData "$subject" has ?;;
    isa)mkrGetData "$subject" isu ?;
	mkrGetData "$subject" iss ?;;
    isu)echo "$subject isu" >&2;
	GetData "$subject" type no ;;
    iss)echo "$subject iss" >&2;
	GetData "$subject" subClassOf no ;;
    isc)mkrGetData "$subject" "isp" ?;
	mkrGetData "$subject" "isg" ?;;
    isp)echo "$subject isp" >&2;
	GetData "$subject" type yes ;;
    isg)echo "$subject isg" >&2;
	GetData "$subject" subClassOf yes ;;

    isa\*)echo "# WARNING: 'isa*' not implemented; using 'isa'" >&2;
	  mkrGetData "$subject" iss ?;;
    isc\*)echo "# WARNING: 'isc*' not implemented; using 'isc'" >&2;
	  mkrGetData "$subject" isg ?;;

    has) case "$object" in 
	?)echo "$subject has" >&2;
	  GetData "$subject" domain yes ;;
	*)echo "$subject has" >&2;
	  GetData "$subject" "$object" no ;;
	esac;; # end case $object
    do)	case "$object" in 
	?)echo "# WARNING: actions not separated from other char." >&2;
	  echo "$subject do" >&2;
	  GetData "$subject" domain yes ;
	  echo "done" >&2;;
	*)echo "# WARNING: actions not separated from other char." >&2;
	  echo "$subject do" >&2;
	  GetData "$subject" "$object" no ;
	  echo "done" >&2;;
	esac;; # end case $object

    *)	echo "$subject has $object = ?" >&2;
	GetData "$subject" "$object" no ;;
    esac # end case $verb

esac # end case $subject
#</XMP>
#</HTML>
