Introspector/LanguageTools/SilverScheme/Ontology

#Following URI is just a placeholder
@prefix : <http://gnufans.net/intrspctr.pl?SilverSchemeOntology#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix : <http://www.imobissimo.com
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xmls: <http://www.w3.org/2001/XMLSchema#> .

:Object rdf:Comment """A SilverScheme object, contains a property list, a
                       code field and an identity field.""" ;
	rdf:Type owl:Class .

:ObjectPrototype rdf:Comment """The prototype of an object.""" ;
		 rdf:Type rdf:Property ;
		 rdf:Domain :Object ;
		 rdf:Range :Object .

:ObjectInternalValue rdf:Comment """The internal value of an object.""" ;
		     rdf:Type rdf:Property ;
		     rdf:Domain :Object ;
		     rdf:Range :InternalValue .

:InternalValue rdf:Comment """The literal representation of an
		              internal value, the
		              representation is that used by
		              the standard SilverScheme
		              reader.""" ; 
	       rdfs:subClassOf xmls:String .

:ObjectCode rdf:Comment """The code of an object.""" ;
	    		rdf:Type rdf:Property ;
			rdf:Domain :Object ;
			rdf:Range :Code .

:Code rdf:Comment """A code section.""" ;
      rdf:Type owl:Class .

:LambdaList rdf:Comment """The lambda list of a code section. A list
                           of course.""" ;
	    rdf:Type rdf:Property ;
	    rdf:Domain :Code ;
	    rdf:Range :Object .

#TODO: Additional constraint on :LambdaList so that it's always a list

:LambdaBody rdf:Comment """The body of a lambda expression. A list of
                           course.""" ;
	    rdf:Type rdf:Property ;
	    rdf:Domain :Code ;
	    rdf:Range :Object .

:ObjectScope rdf:Comment """The scope of an object.""" ;
             rdf:Type rdf:Property ;
             rdf:Domain :Object ;
             rdf:Range :Scope .

:Scope rdf:Comment """A scope list, basically just a triples list""" ;
       rdf:Type owl:Class .

:ScopeBinding rdf:Comment """A binding in a scope.""" ;
              rdf:Type rdf:Property ;
              rdf:Domain :Scope ;
              rdf:Range :Binding .

:Binding rdf:Comment """A binding.""" ;
         rdf:Type owl:Class .

:BindingSubject rdf:Comment """The subject of a binding.""" ;
                rdf:Type rdf:Property ;
                rdf:Domain :Binding ;
                rdf:Range :Object .

:BindingName rdf:Comment """The name of a binding, must be a valid
                            SilverScheme identifier.""" ;
             rdf:Type rdf:Property ;
             rdf:Domain :Binding ;
             rdf:Range xmls:String .

:BindingObject rdf:Comment """The object of a binding.""" ;
               rdf:Type rdf:Property ;
               rdf:Domain :Binding ;
               rdf:range :Object.