vocabulary <http://flandersmake.be/cdf/vocabulary/ordered#> as ordered {
	
//	extends <http://flandersmake.be/cdf/vocabulary/acyclic#> as acyclic
	extends <http://www.w3.org/2001/XMLSchema#> as xsd
	
	aspect List []
	
	relation entity HasItem [
		from List
		to ListItem
		forward hasItem
		reverse ofList
		asymmetric
		irreflexive
		inverse functional
	]
	
	aspect ListItem [
		restricts scalar property hasIndex to exactly 1
	]
	
//	relation entity Next :> acyclic:Acyclic [
//		from ListItem
//		to ListItem
//		forward nextItem
//		reverse prevItem
//		asymmetric
//		irreflexive
//	]
	
//	rule N [
//		hasItem(L,I1) ^ hasItem(L,I2) ^ hasIndex(I1, IDX1) ^ hasIndex(I2, IDX1+1) -> nextItem(I1, I2)
//	]
	
	scalar property hasIndex [
		domain ListItem
		range xsd:nonNegativeInteger
		functional
	]
}