Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Logical model of serialised includable content could be something like:

 


Code Block
languagejs
abstract class DOCUMENTVIEW_ITEMGROUP inherit CONTENT_ITEM
	value: DV_PARSABLE SECTION
    meta_data: CLUSTER[0..1]     			   // serialised form of the content 	serialisation_method: DV_CODED_TEXT[0..1]  // algorithmcuration-related
usedend
to
serialiseabstract valueclass fromVIEW_ITEM structuredinherit sourceCONTENT_ITEM
end
 
class STATIC_CONTENTCITATION inherit DOCUMENTVIEW_ITEM
	source_ref: OBJECT_REF[1] 			// pointer to Composition, Entry
	source_type: ARCHETYPE_HRID[1]		// RM type, archetype of target info
end
 
abstract class DYNAMIC_CONTENT inherit DOCUMENTVIEW_ITEM
	snapshot_time: Date_time[0..1]		// time of generating result
	function is_dynamic: Boolean		// True if no result snapshot included
end
 
class QUERY_RESULT inherit DYNAMIC_CONTENT
	query: String[1] 			        // generating query
end
 
class API_CALL_RESULT inherit DYNAMIC_CONTENT
	api_call_name: String[1] 		    // API call name
	api_call_arguments: String[*] 		// API call arguments
end

 


The above would allow mixing of document content and structured content. This arguably complicates things. A better model may be to make 'documents' a different kind of content consisting only of sections and serialised content. 


Code Block
languagejs
class DOCUMENT_COMPOSITION inherit COMPOSITION
	content: DOCUMENT_ITEM[*]					// structured source elements
	serialised: DV_PARSABLE[0..1]     		    // serialised form of the content
	serialisation_method: DV_CODED_TEXT[0..1]   // algorithm used to serialise value from structured source
	serialisation_time: Date_time[1]   			// time of serialisation
	doc header info?
end
 
abstract class DOCUMENT_ITEM inherit LOCATABLE
end

class DOCUMENT_SECTION inherit DOCUMENT_ITEM
	// name attribute provides name of section
end

class DOCUMENT_STATIC_ITEM inherit DOCUMENT_ITEM
	source_ref: OBJECT_REF[1] 			// pointer to Composition, Entry
	source_type: ARCHETYPE_HRID[1]		// RM type, archetype of target info
end
 
abstract class DOCUMENT_DYNAMIC_ITEM inherit DOCUMENT_ITEM
	function is_dynamic: Boolean		// True if no result snapshot included
end
 
class DOCUMENT_QUERY_RESULT inherit DOCUMENT_DYNAMIC_ITEM
	query: String[1] 			        // generating query
end
 
class DOCUMENT_API_CALL_RESULT inherit DOCUMENT_DYNAMIC_ITEM
	api_call_name: String[1] 		    // API call name
	api_call_arguments: String[*] 		// API call arguments
end

...