@prefix rdfs: . @prefix rdf: . @prefix : . ##------------------------------------------------------------- <> rdfs:comment "Loadable modules classes" ; rdfs:seeAlso . <> rdfs:comment "$Id: joseki-module.n3,v 1.1 2003-07-01 10:10:38 andy_seaborne Exp $" . ##------------------------------------------------------------- ## A module is a binding (association between thing and this instance) ## and a class (code) that provides the functionality of the module. :Module a rdfs:Class . :ModuleBinding a rdfs:Class . # Typical use for this property is to use (or subProperty) # to associate the resource with the binding described. :module a rdf:Property ; # rdfs:domain rdfs:Resource ; rdfs:range :ModuleBinding ; rdfs:comment "Module binding" ; . ## ------------------------ ## Binding :interface a rdf:Property ; rdfs:domain :ModuleBinding ; #rdfs:range rdfs:Resource ; rdfs:comment "URI of the interface for the binding." ; . :implementation a rdf:Property ; rdfs:domain :ModuleBinding ; rdfs:range :Module ; rdfs:comment "Identifies the implementation to use" ; . ## ------------------------ ## Provider/Implementation :className a rdf:Property ; rdfs:domain :ModuleBinding ; rdfs:range rdfs:Literal ; # Class name as string rdfs:comment "Load Java class" . ## # Example. ## # The general structure is ## # thing ## # module:module ## # module:implementation ## # ## # Note the inclusion of argument to the class and instance in a ## # vocabulary defined by the interface designed and implementation provider. ## # Often these two roles are the same so the namespaces will be the same. ## ## @prefix mdl: . ## ## @prefix interface: . ## @prefix provider: . ## @prefix app: . ## ## app:thing ## module:module ## [ a module:ModuleBinding ; ## module:interface ; ## interface:instanceArg "name" ; ## module:implementation ## [ a module:ModuleProvider ; ## provider:classArg "name" ; ## module:className "org.joseki.server.someModule" ## ] ; ## ] . # Local Variables: # tab-width: 4 # indent-tabs-mode: nil # End: