# file: http://id.ninebynine.org/semafor/1.0/definitions.n3 # # Schema/Definitions for Semantic web Forms software (SemaFor), # version 1.0 # # [[[Currently a work-in-progress, not yet stable.]]] # # This is intended to be a utility for creating web pages based # on RDF semantic data. The data collection, schema and # presentation information is all encoded in an RDF-based form, # so the system can be completely self-extensible. # # This file represents the minimum set of definitions that are # used to bootstrap the system: these are the RDF classes and # properties that are directly recognized by the SemaFor software. # # $Id: definitions.n3,v 1.4 2002/04/10 20:53:07 graham Exp $ # @prefix rdf: . @prefix rdfs: . @prefix foaf: . @prefix wn: . @prefix dc: . @prefix rdfc: . @prefix semafor: . @prefix sfframe: . @prefix xsd: . # ***************** # BASIC DEFINITIONS # ***************** # Assertable # ========== # # rdfc:Assertable a rdfs:Class ; rdfs:label "Assertable" ; rdfs:comment """ This is an umbrella class that describes things that can be asserted to be true. In the face of such an assertion, RDF and other applicable model theories constrain the set of "real worlds" that are described. """ . rdf:Statement rdfs:subClassOf rdfc:Assertable . # Contexts # ======== # # A 'Context' is a collection of statements and contexts # (see property rdfc:contains) # rdfc:Context a rdfs:Class ; rdfs:subClassOf rdfc:Assertable ; rdfs:label "Context" ; rdfs:comment """ Instances of this class are resources that stand for groupings of statement sets, including other statement sets. SPG uses these to provide a basic directory structure for organizing and navigating statements. Statements within a statement set may or may not be asserted. """ . # 'contains' is the basic property for used inclusion of a # statements and contexts within a context. # rdfc:contains a rdf:property ; rdfs:domain rdfc:Context ; rdfs:range rdfc:Assertable ; rdfs:comment """ This is the property that indicates containment of a value in a context. """ . # 'asserts' is a property used to indicate assertable values # that are asserted when the containing context is asserted. # rdfc:asserts a rdf:property ; rdfs:subPropertyOf rdfc:contains ; rdfs:domain rdfc:Context ; rdfs:range rdfc:Assertable ; rdfs:comment """ This is the property that indicates assertion of an assertable value (statement or context) in a context; i.e. when the context is asserted then the indicated value is also asserted. """ . # Lists # ===== # # A list is built up from elements which have a head and a # tail, where the tail is a sublist. A list is terminated by # 'Nil', the empty list. # semafor:List a rdfs:Class ; rdfs:label "List" ; rdfs:comment """ This class represents a list having a head element and a tail that is the rest of the list. """ . # 'listRange' is as close to a typed list template as I can # come at the present time. # # [[[In the longer term, a generic framework mechanism might # be provided to allow any property to be inferred for all # elements of a list.]]] # semafor:listRange a rdf:property ; rdfs:domain semafor:List ; rdfs:range rdfs:Class ; rdfs:label "List range" ; rdfs:comment """ This property indicates a class for all list elements. The idea is that an inference rule can be used to infer a type for for all elements of the list based on this one property of the list. """ . # 'head' of a list. For range of this property, see # 'listRange' property of the head of the list to which it # is applied. # semafor:head a rdf:property ; rdfs:domain semafor:List ; rdfs:label "List head" ; rdfs:comment """ This property indicates the head of a list. """ . semafor:tail a rdf:property ; rdfs:domain semafor:List ; rdfs:range semafor:List ; rdfs:label "List tail" ; rdfs:comment """ This property indicates the tail of a list. """ . # The empty list: has no 'head' or 'tail' properties # semafor:Nil a semafor:List ; rdfs:label "Nil" ; rdfs:comment """ This object is an empty list. """ . # List of string values # semafor:StringList a rdfs:Class ; rdfs:subClassOf semafor:List ; rdfs:label "String list" ; rdfs:comment """ A list of string values. The value of semafor:listRange is xsd:string. """ . # Frames and Slots # ================ # # A 'Frame' is a container for information that is presented in # a web page. The information associated with a frame is # organized as values that are instances of 'SlotValue'. # # A frame acts like a reification (use without assertion) of # all of its slots. # semafor:Frame a rdfs:Class ; rdfs:subClassOf rdfc:Assertable ; rdfs:label "Frame" ; rdfs:comment """ This is the base class for all information frames managed and presented by SPG. A frame is expected to have the following properties: semafor:frameId semafor:frameType semafor:slot rdfs:label """ . # 'frameId' is a property that identifies the frame. # When a frame is asserted, this is the subject of the # properties corresponding to the slot values. # semafor:frameId a rdf:Property ; rdfs:domain semafor:Frame ; rdfs:label "Frame identifier" ; rdfs:comment """ This is the property that identifies a frame. """ . # 'frameType' is a property that indicates the type of entity # described by the frame. # When a frame is asserted, this is the type of the subject of # the properties corresponding to the slot values. # semafor:frameType a rdf:Property ; rdfs:domain semafor:Frame ; rdfs:range rdfs:Class ; rdfs:label "Frame type" ; rdfs:comment """ This is the property that identifies the type of object described by a frame. """ . # 'slot' is a property of a frame that designates a slot value. # semafor:slot a rdf:Property ; rdfs:subPropertyOf rdfc:contains ; rdfs:domain semafor:Frame ; rdfs:range semafor:SlotValue ; rdfs:label "Slot" ; rdfs:comment """ This is the property that links a slot value to a frame. A slot property and value describe a property of a frame without asserting it as an RDF statement. Asserting a frame causes RDF statements to be asserted thus: [a semafor:Frame] frameId subject ; slot [ a semafor:SlotValue ; semafor:slotId property ; semafor:slotVal object ] . when asserted yields the RDF statement: subject property object . """ . # 'SlotValue' is a class that can be used with the 'slot' # property to describe a slot value. # # Asserting a frame is equivalent to asserting RDF statements # about the frameId resource with properties/values of all of # the slots. # semafor:SlotValue a rdfs:Class ; rdfs:label "Slot value" ; rdfs:comment """ This is the base class for all information contained within a frame managed and presented by SPG. A SlotValue is expected to have the following properties: semafor:slotId semafor:slotVal rdfs:label """ . # 'slotId' is a property of a SlotValue that indicates the slot # identifier (a URI of a 'Property' resource). # semafor:slotId a rdf:Property ; rdfs:domain semafor:SlotValue ; rdfs:range rdf:Property ; rdfs:label "Slot identifier" ; rdfs:comment """ This property indicates the identifier of a slot value, which is also a property identifier. """ . # 'slotVal' is a property of a SlotValue that indicates the # primary value in that slot. # semafor:slotVal a rdf:Property ; rdfs:subPropertyOf rdf:value ; rdfs:domain semafor:SlotValue ; rdfs:label "Slot value" ; rdfs:comment """ This property indicates the primary value of a slot. But see also comment for slotId. """ . # Frame descriptions # ================== # # Used to describe slots and other values associated with a # frame. Interpreted by SPG when constructing frame instances. # # A Frame description is the result of asserting a frame # whose slots contain information about some described # frame type. # semafor:FrameDescription a rdfs:Class ; rdfs:label "Frame description" ; rdfs:comment """ The result of asserting a frame whose slots contain information about some described frame. """ . semafor:frameLabel a rdf:Property ; rdfs:domain semafor:FrameDescription ; rdfs:range xsd:string ; rdfs:label "Frame type label" ; rdfs:comment """ This property indicates the displayable name of a frame type. [[[= rdfs:Label of the frameType value of the frame?]]] """ . semafor:frameSlot a rdf:Property ; rdfs:domain semafor:FrameDescription ; rdfs:range semafor:SlotDescription ; rdfs:label "Slot description" ; rdfs:comment """ Indicates a slot descriptions. This property is repeated for each slot of a frame. (Note that slot ordering is not significant in a frame description; slots are identified by property identifier. """ . semafor:SlotDescription a rdfs:Class ; rdfs:label "Slot description" ; rdfs:comment """ Describes a single slot of a frame, indicating its name, value type and slot identifier. """ . semafor:slotName a rdf:Property ; rdfs:domain semafor:SlotDescription ; rdfs:range xsd:string ; rdfs:label "Slot name" ; rdfs:comment """ This property indicates the name of a slot value, which is used to identify the slot in descriptions of a frame. """ . semafor:slotType a rdf:Property ; rdfs:domain semafor:SlotDescription ; rdfs:range rdfs:Class ; rdfs:label "Slot type" ; rdfs:comment """ This property indicates the type of a slot value, which is used to determine how a slot value should be handled. The object of this property is either a literal data type identifier, such as xsd:string or xsd:integer, or some other class identifier for which a corresponding frame description is available. Ultimately, all frame/slot descriptions are constructed from literal types. """ . semafor:slotIdent a rdf:Property ; rdfs:domain semafor:SlotDescription ; rdfs:range rdf:Property ; rdfs:label "Slot identifier" ; rdfs:comment """ This property indicates the identifier of a slot value, which is used as a property value when a frame containing the slot value is asserted. If a slot is associated with a frame description, the slot identifiers used within the frame type, and also with any frame types that they may reference, should be different from any slot identifier of the parent frame. Otherwise, an indefinitely recursive definition may be created. """ . semafor:slotMinOccur a rdf:Property ; rdfs:domain semafor:SlotDescription ; rdfs:range xsd:integer ; rdfs:label "Minimum slot occurrences" ; rdfs:comment """ This property indicates the minimum number of times a slot must appear in its containing frame. Normal values are 0 (optional) and 1 (required). """ . semafor:slotMaxOccur a rdf:Property ; rdfs:domain semafor:SlotDescription ; rdfs:range xsd:integer ; rdfs:label "Maximum slot occurrences" ; rdfs:comment """ This property indicates the maximum number of times a slot must appear in its containing frame. Normal values are and 0 (repeat without limit), 1 (only once) or n (up to n times). If omitted, a value equal to semafor:slotMinOccur is assumed. """ . # Forms # ===== # # A form describes the presentation of data from a frame. # # A form instance is presented as a frame, so that it can be # created and updated like any other kind of frame. A form # instance is the result of asserting such a frame. # # A form consists of: # a title # a cell-group # # A cell-group consists of: # one or more value-cells, normally presented vertically, # (i.e. cells one above another). Other arrangements are # possible by using value-cells that contain other cells. # # A value-cell: # a label and a value, normally presented side by side. # Other arrangements are possible by using value-cells that # contain other value-cells. # # Special value-cell types are: # Group: the label is a group label, and the value # is a normal cell-group. # Table: The label is a heading, and the value is one or # more rows, which are presented vertically (i.e. rows # one above another). Each row consists of one or more # value-cells that are presented horizontally # (i.e. cells one beside another) across the entire # width of the cell value. # Repeat: the label is a group label, and the value # is a normal cell-group, which may be repeated # any number of times. The corresponding frame value # is expected to be a semafor:List. # # Simple value-cell types consist of: # a value label # a value type (text, Boolean, integer, real number, date, # time, date and time, URI, QName; use XML schema data # URI-refs in http://www.w3.org/2001/XMLSchema-datatypes). # a presentation type (text box, secret-box, drop-down list, # scrolling list, check box group, radio button group, # multiline text area) # a default value # # For URI values, there should be provision for a resource # pick from some context; e.g. for selecting a data type # for a slot description. # # A file name input box should be provided (for uploading # file data); data type is text? octet-stream? # semafor:Form a rdfs:Class ; rdfs:label "Form" ; rdfs:comment """ This class represents a form used to display and/or input frame data. A form instance is presented as a frame, so that it can be created and updated like any other kind of frame. An semafor:Form instance is the result of asserting such a frame. Properties: semafor:formTitle semafor:memberCells """ . semafor:formTitle a rdf:Property ; rdfs:domain semafor:Form ; rdfs:range xsd:string ; rdfs:label "Form title" ; rdfs:comment """ This property indicates a title to be used for a form. """ . semafor:memberCells a rdf:Property ; rdfs:domain semafor:Form ; rdfs:range semafor:CellGroup ; rdfs:label "Form cells" ; rdfs:comment """ Indicates a group of cell descriptions. """ . semafor:CellGroup a rdfs:Class ; rdfs:subClassOf semafor:List ; rdfs:label "Cell group" ; rdfs:comment """ This class represents a cell group as a list of value cells. The value of semafor:listRange is semafor:ValueCell. """ . semafor:ValueCell a rdfs:Class ; rdfs:label "Value cell" ; rdfs:comment """ This class represents a value cell. Properties: semafor:valueLabel semafor:valueSlotId (property identifier) semafor:valueType (presented value type) semafor:presentation (presentation style) semafor:presentChoice (list of choice values) semafor:presentQuery (query for resource values) semafor:presentGroup (subsidiary cell group) semafor:presentRow (row of Table) semafor:valueDefault """ . semafor:valueLabel a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range xsd:string ; rdfs:label "Value label" ; rdfs:comment """ Label for cell value when form is displayed. """ . semafor:valueSlotId a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range rdf:Property ; rdfs:label "Value slot identifier" ; rdfs:comment """ Identifies RDF property corresponding to the form slot. This value is also used to identify the corresponding slot of a frame description when processing a form. [[[ How to identify sub-frame properties? (i.e. where a slot value is itself a resource, with a corresponding frame description. Allow a sequence of slot identifiers to be used?)]]] """ . semafor:valueType a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range semafor:ValueType ; rdfs:label "Value type" ; rdfs:comment """ Indicates the type of displayed value. This is used to determine the valid range of textual input values, and is in not the same as the rdf:Class of the corresponding frame slot value. """ . semafor:presentation a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range semafor:PresentationStyle ; rdfs:label "Presentation style" ; rdfs:comment """ Indicates the visual presentation style of the current cell. Non-visual presentation media may use any form of presentation that matches the general semantics. """ . semafor:presentChoice a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range semafor:StringList ; rdfs:label "Choice values" ; rdfs:comment """ List of values from which a selection may be made. """ . semafor:presentQuery a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range semafor:Query ; rdfs:label "Resource query" ; rdfs:comment """ Query for list of resource values to display for resource list presentation style. """ . semafor:presentGroup a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range semafor:CellGroup ; rdfs:label "Subsidiary cell group" ; rdfs:comment """ Subsidiary cell group in form. This might be used to create labelled groups of elements within a form. Also, for button-groups. """ . semafor:presentRow a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:range semafor:CellGroup ; rdfs:label "Table row" ; rdfs:comment """ Row of cells in a table. """ . # [[[distinguish between 'valueDefault' and 'valueReset'?]]] semafor:valueDefault a rdf:Property ; rdfs:domain semafor:ValueCell ; rdfs:label "Default value" ; rdfs:comment """ This property indicates the default value for a slot, which is aplied when a frame is initially created or reset. """ . # Cell value types # ---------------- # semafor:ValueType a rdf:Class ; rdfs:label "Value type" ; rdfs:comment """ Cell value type. This is used to determine the range of allowable values in a text box. The values are (mostly) based on XML schema primitive datatypes, declared as subclasses of this class, as below. """ . xsd:string rdfs:subClassOf semafor:ValueType . xsd:boolean rdfs:subClassOf semafor:ValueType . xsd:integer rdfs:subClassOf semafor:ValueType . xsd:double rdfs:subClassOf semafor:ValueType . xsd:date rdfs:subClassOf semafor:ValueType . xsd:time rdfs:subClassOf semafor:ValueType . xsd:dateTime rdfs:subClassOf semafor:ValueType . xsd:duration rdfs:subClassOf semafor:ValueType . xsd:anyURI rdfs:subClassOf semafor:ValueType . xsd:QName rdfs:subClassOf semafor:ValueType . # Presentation styles # ------------------- # semafor:PresentationStyle a rdf:Class ; rdfs:label "Presentation style" ; rdfs:comment """ Values for the visual presentation style of a cell. Possible values are based on options made available using (X)HTML forms and tables. """ . semafor:TextBox a semafor:PresentationStyle ; rdfs:label "Text box" ; rdfs:comment """ Cell is a one-line text box. """ . semafor:SecretBox a semafor:PresentationStyle ; rdfs:label "Secret box" ; rdfs:comment """ Cell is a one-line text box, whose content is obscured during entry and on siubsequent display of a form. """ . semafor:TextArea a semafor:PresentationStyle ; rdfs:label "Text area" ; rdfs:comment """ Cell is a multi-line text area. """ . semafor:DropList a semafor:PresentationStyle ; rdfs:label "Drop-down list" ; rdfs:comment """ Cell is a drop-down list of predefined choices. """ . semafor:ScrollList a semafor:PresentationStyle ; rdfs:label "Scrolling list" ; rdfs:comment """ Cell is a scrolling list of predefined choices. """ . semafor:ResourceList a semafor:PresentationStyle ; rdfs:label "Resource list" ; rdfs:comment """ Cell is a scrolling list of defined resources. This is a special form of scrolling list control used for selecting a resource from some context. Resources are selected from the current database using a query. """ . semafor:CheckButton a semafor:PresentationStyle ; rdfs:label "Check button" ; rdfs:comment """ Indepenently selectable on/off check button. """ . semafor:RadioButton a semafor:PresentationStyle ; rdfs:label "Radio button" ; rdfs:comment """ A button indicating one of several mutually exclusive selection options. Only one radio button within a cell group may be selected (checked) at any time. """ . semafor:SubmitButton a semafor:PresentationStyle ; rdfs:label "Submit button" ; rdfs:comment """ A push-button that, when clicked, causes current form values to be validated, and saved if valid. """ . semafor:CancelButton a semafor:PresentationStyle ; rdfs:label "Cancel button" ; rdfs:comment """ A push-button that, when clicked, causes current form to be abandoned, and all values discarded. """ . semafor:PushButton a semafor:PresentationStyle ; rdfs:label "Push button" ; rdfs:comment """ A push-button that, when clicked, activates some client-side processing of the form data. [[[Client-side processing details to be defined.]]] """ . semafor:CellGroup a semafor:PresentationStyle ; rdfs:label "Cell group" ; rdfs:comment """ A group of cells that are treated for some purposes as a single unit. Used for grouping related buttons (especially radio buttons) and otherwise related cells. """ . semafor:CellList a semafor:PresentationStyle ; rdfs:label "Cell list" ; rdfs:comment """ A cell group that may repeat an arbitrary number of times. The corresponding slot value is presumed to be a list of values. The cell group may contain a single value or a group of values that are repeated. """ . semafor:CellTable a semafor:PresentationStyle ; rdfs:label "Cell table" ; rdfs:comment """ A list of cell rows; a device to allow cells to be displayed in a 2-dimensional grid. """ . semafor:CellRow a semafor:PresentationStyle ; rdfs:label "Cell row" ; rdfs:comment """ A list of cells; a device to allow cells to be displayed horizontally as well as vertically. """ . semafor:Query a rdfs:Class ; rdfs:label "Resource query" ; rdfs:comment """ Defines a query that is used to locate one or more resources in the database. Simple triple-based queries are supported, not full tree-matches. Conjunctions of search patterns are supported. [[[Full details to be defined.]]] """ . semafor:Transform a rdfs:Class ; rdfs:label "Transform" ; rdfs:comment """ Defines a transform that is applied when generating output from an RDF graph. [[[Full details to be defined.]]] """ . # Context descriptions # ==================== # # A context description provides information about a context, # mainly for display purpose (but possibly also for searching) # semafor:ContextDescription a rdf:Class ; rdfs:label "Context" ; rdfs:comment """ This class describes a context. Properties: semafor:contextRef semafor:contextRange rdfs:label rdfs:comment """ . semafor:contextRef a rdf:Property ; rdfs:domain semafor:ContextDescription ; rdfs:range rdfc:Context ; rdfs:label "Context" ; rdfs:comment """ Reference to the context described by a semafor:ContextDescription value. """ . semafor:contextRange a rdf:Property ; rdfs:domain semafor:ContextDescription ; rdfs:range rdfs:Class ; rdfs:label "Context range" ; rdfs:comment """ An rdf:Class value indicating the type of any values that the context may contain. Multiple instances of this property may be applied with conjunctive semantics. """ . # ****************************************** # INSTANCE DATA USED TO BOOTSTRAP THE SYSTEM # ****************************************** # The main requirement is to have enough initial data to define # new frame descriptions and new form descriptions. Using these, # any further data required can be entered via the form-based # user interface. These consist of: # Frame and form descriptions for frame and slot descriptions # Frame and form descriptions for form and cell descriptions # # Other data used to support primitive operations: # - Frame and form description for context selection # - Initial context descriptions for initial database # structure: # +- (Root) # +- Frames # | +- Slots # +- Forms # | +- Cells # +- Queries # +- Transforms # +- Rules # +- FileTypes # +- User # : # # Frame description instances # =========================== # # Frame description instance names have FD- prefix. # Slot description instance names have SD- prefix. # # Frame description of a frame description # ---------------------------------------- # # Used to describe values associated with a frame description. # Interpreted by SPG when constructing frame descriptions. # This allows SPG to perform "reflection" on frames; i.e. to # allow the system, via its user interface, to create and # modify frame types. # semafor:FD-FrameDescription a semafor:FrameDescription ; semafor:frameLabel "Frame description" ; semafor:frameSlot semafor:SD-frameLabel ; semafor:frameSlot semafor:SD-frameSlot ; rdfs:label "Description of a frame description frame" ; rdfs:comment """ Describes the structure of a frame containing a frame desription. """ . semafor:SD-frameLabel a semafor:SlotDescription ; semafor:slotName "Frame label" ; semafor:slotType xsd:string ; semafor:slotIdent semafor:frameLabel ; semafor:slotMinOccur "1" ; semafor:slotMaxOccur "1" ; rdfs:label "Description of a frame label slot" ; rdfs:comment """ Describes the frame label slot of a frame description. """ . semafor:SD-frameSlot a semafor:SlotDescription ; semafor:slotName "Frame slot" ; semafor:slotType semafor:SlotDescription ; semafor:slotIdent semafor:frameSlot ; semafor:slotMinOccur "0" ; semafor:slotMaxOccur "0" ; rdfs:label "Description of frame slot" ; rdfs:comment """ Describes the slot descriptions slot of a frame description. It is repeated for each distinctly identified slot in a frame. """ . # Additional slot definitions for the slots of the slot # description frames defined above. Recursively applied # frame-based descriptions of any RDF object should # "bottom out" in these values. # # These frame based definitions are the values that can be # created, displayed and edited by the user interface # components. # semafor:SD-slotName a semafor:SlotDescription ; semafor:slotName "Slot name" ; semafor:slotType xsd:string ; semafor:slotIdent semafor:slotName ; semafor:slotMinOccur "1" ; semafor:slotMaxOccur "1" ; rdfs:label "Slot name" ; rdfs:comment """ Is the display name of a slot in a slot description. """ . semafor:SD-slotType a semafor:SlotDescription ; semafor:slotName "Slot type" ; semafor:slotType rdfs:Class ; semafor:slotIdent semafor:slotType ; semafor:slotMinOccur "1" ; semafor:slotMaxOccur "1" ; rdfs:label "Slot value type" ; rdfs:comment """ Is the value type of a slot in a slot description. """ . semafor:SD-slotIdent a semafor:SlotDescription ; semafor:slotName "Slot identifier" ; semafor:slotType rdf:Property ; semafor:slotIdent semafor:slotIdent ; semafor:slotMinOccur "1" ; semafor:slotMaxOccur "1" ; rdfs:label "Slot property identifier" ; rdfs:comment """ Is the property identifier of a slot in a slot description. """ . semafor:SD-slotMinOccur a semafor:SlotDescription ; semafor:slotName "Minimum occurences" ; semafor:slotType xsd:integer ; semafor:slotIdent semafor:slotMinOccur ; semafor:slotMinOccur "1" ; semafor:slotMaxOccur "1" ; rdfs:label "Slot minimum occurrences" ; rdfs:comment """ Is the minimum number of occurrences of a slot in its enclosing frame. Normal values are 0 (optional) and 1 (required). """ . semafor:SD-slotMaxOccur a semafor:SlotDescription ; semafor:slotName "Maximum occurences" ; semafor:slotType xsd:integer ; semafor:slotIdent semafor:slotMaxOccur ; semafor:slotMinOccur "0" ; semafor:slotMaxOccur "1" ; rdfs:label "Slot maximum occurrences" ; rdfs:comment """ Is the maximum number of occurrences of a slot in its enclosing frame. Normal values are and 0 (repeat without limit), 1 (only once) or n (up to n times). If omitted, a value equal to semafor:slotMinOccur is assumed. """ . # Form description instances # ========================== # # Used to describe values associated with a form description. # Interpreted by SPG when constructing form descriptions. # This allows SPG to perform "reflection" on forms; i.e. to # allow the system, via its user interface, to create and # modify form types. # Context description instances # ============================= # # Used to describe values associated with a context. # Interpreted by SPG when constructing context instances. # *********************** # EXAMPLE FRAME INSTANCES # *********************** # Now, for illustration, here are some frames corresponding # to the descriptions of a frame description and its associated # slot descriptions, not including rdfs:label and rdfs:comment # values. # # The software should be able to generate these descriptions # from the instance data provided above. All values created, # displayed or edited by the SPG user interface are in the # form of frames, which are asserted to normal RDF objects # for use and/or publication. # # Frame value instance names have FV- prefix. # (Slot value instance names have SV- prefix.) # sfframe:FD-FrameDescription a semafor:Frame ; semafor:frameId semafor:FD-FrameDescription ; semafor:frameType semafor:FrameDescription ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:frameLabel ; semafor:slotVal "Frame description" ; rdfs:label "Frame label: Frame description" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:frameSlot ; semafor:slotVal semafor:SD-frameLabel ; rdfs:label "Frame slot: SD-frameLabel" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:frameSlot ; semafor:slotVal semafor:SD-frameSlot ; rdfs:label "Frame slot: SD-frameSlot" ] . sfframe:SD-frameLabel a semafor:Frame ; semafor:frameId semafor:SD-frameLabel ; semafor:frameType semafor:SlotDescription ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotName ; semafor:slotVal "Frame label" ; rdfs:label "Slot name: Frame label" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotType ; semafor:slotVal xsd:string ; rdfs:label "Slot type: string" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotIdent ; semafor:slotVal semafor:frameLabel ; rdfs:label "Slot identifier: semafor:frameLabel" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotMinOccur ; semafor:slotVal "1" ; rdfs:label "Minimum occurrences: 1" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotMaxOccur ; semafor:slotVal "1" ; rdfs:label "Maximum occurrences: 1" ] . sfframe:SD-frameSlot a semafor:Frame ; semafor:frameId semafor:SD-frameLabel ; semafor:frameType semafor:SlotDescription ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotName ; semafor:slotVal "Frame slot" ; rdfs:label "Slot name: Frame slot" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotType ; semafor:slotVal semafor:SlotDescription ; rdfs:label "Slot type: SlotDescription" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotIdent ; semafor:slotVal semafor:frameSlot ; rdfs:label "Slot identifier: frameSlot" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotMinOccur ; semafor:slotVal "0" ; rdfs:label "Minimum occurrences: 0" ] ; semafor:slot [ a semafor:SlotValue ; semafor:slotId semafor:slotMaxOccur ; semafor:slotVal "0" ; rdfs:label "Maximum occurrences: 0" ] . # End. # # $Log: definitions.n3,v $ # Revision 1.4 2002/04/10 20:53:07 graham # Update identifier URIs and pages # # Revision 1.3 2002/04/10 18:07:02 graham # Update SemaFor identifier descriptions # # Revision 1.2 2002/04/04 11:12:15 graham # Updated prefix names # # Revision 1.1 2002/04/04 10:56:22 graham # Added to http://id.ninebynine.org/ identifier and schema tree #