mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 11:20:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| Concepts
 | |
| 	basic
 | |
| 		item
 | |
| 		| a basic element in the system.
 | |
| 		| an item is represented by a URL
 | |
| 		group (item)
 | |
| 		| a special item that unifies several items
 | |
| 		list
 | |
| 		| a representation of several items
 | |
| 		tag
 | |
| 		| a piece of text connected with an item
 | |
| 		action
 | |
| 		| a user defined command or script
 | |
| 	constructed
 | |
| 		state (tag)
 | |
| 		| a named state of an item
 | |
| 		stack (group)
 | |
| 		| a set of versions or states of an item
 | |
| 		| a stack behaves like an item
 | |
| 		collection/list
 | |
| 		| a special list defined manually or with a search that is maintained in the filesystem
 | |
| 		tag chain
 | |
| 		| a special tag that consists of several tags
 | |
| 		event
 | |
| 		| a condition that can be bound to an action
 | |
| 		workflow
 | |
| 		| a named sequence/graph of states and transitions (actions)
 | |
| 	structural
 | |
| 		URL
 | |
| 		index
 | |
| 		| contains:
 | |
| 			metadata
 | |
| 			item data
 | |
| 				GID
 | |
| 				metadata
 | |
| 				GIDs of available local sub-items (thumbs, previews, ...)
 | |
| 				GIDs of available remote sub-items (thumbs, previews, ...)
 | |
| 				URLs (optional)
 | |
| 				| URLs are only local...
 | |
| 					store
 | |
| 					cache
 | |
| 		cache
 | |
| 		store
 | |
| 		clone/remote (???)
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| structure
 | |
| 	configuration (archive-wide)
 | |
| 		general settings
 | |
| 		actions
 | |
| 		scripts
 | |
| 		remote refs
 | |
| 		clone settings
 | |
| 	index (metadata)
 | |
| 	version info
 | |
| 	data
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| requirements
 | |
| 	index external data (represented by URLs and groups of URLs)
 | |
| 		indexing is done via tags (metadata)
 | |
| 	provide generic data operations
 | |
| 		search/select
 | |
| 		import
 | |
| 		copy/move/...
 | |
| 		...
 | |
| 	provide data-specific operations
 | |
| 		import
 | |
| 		thumbnails/previews (for images)
 | |
| 		...
 | |
| 	provide archive-level operations
 | |
| 		clone
 | |
| 		push/pull
 | |
| 		commit
 | |
| 		...
 | |
| 	provide trivial configurability
 | |
| 		data-specific actions
 | |
| 		domain-specific archive actions
 | |
| 
 | |
| stored data
 | |
| | the main idea behind this is to make a git like management system 
 | |
| | suited for a slightly different data, characterised as:
 | |
| 	very large umbers of elements/files
 | |
| 	continually increasing number of elements
 | |
| 	elements rarely change (almost no diffing needed)
 | |
| 	metadata is constantly changed
 | |
| 	large elements
 | |
| 		span more than one storage media
 | |
| 	indirect as well as direct element cloning
 | |
| 		copy / backup
 | |
| 		preview
 | |
| 		thumbnail
 | |
| 	data is constantly searched or accessed
 | |
| basic requirements
 | |
| 	safe originals
 | |
| 
 | |
| 
 | |
| 
 | |
| main workflows
 | |
| 	import new data
 | |
| 	
 | |
| 
 | |
| .
 | |
| | vim:set spell ts=4 sw=4 :
 |