Hi Graham,
thanks a lot for this suggestion. I spent some more time in making this
concept a bit more solid [1,2]. Here the features that I added/changed
in the v0.3 proposal (+ for added, ~for modified):
+ olo:next - to associate the next slot of a slot in an ordered list
~ olo:length - to enable a single length association to an ordered list
~ olo:length - rdfs:range xsd:positiveInteger (no empty lists!)
~ olo:index - to enable a single index association to a slot in an
ordered list
~ anonymous inverse property of olo:slot to rdfs:type
owl:FunctionalProperty
With that changes it should be possible
... to create a unique neighbourhood relation; the list ends if the slot
hasn't a neighbour (that means no is:next property is set)
... to associate a single index to a slot; however, this still not
prevents from inserting several slots with the same index
... to associate a single length to an ordered list
To model the unique relations for index and length I followed the
pattern from here[3].
I think, if the size of the ordered list is defined in its length, which
should be used by a rule for validation, why we need than another
property, which defines its max length (see also my thoughts about
practical application)?
I still believe that it isn't possible to guarantee full valid ordered
lists, without the use of some rules (only with the
rdf:first/rdf:next/rdf:nil pattern). However, rules are created for some
purpose, so why not use them (think practical here).
Another practical thought is, if something changes in the ordered list,
e.g. a new slot would be added, than the graph of the list will be
rewritten or a new one would be created (that depends on the used
revision mechanism).
Comments, suggestions, critics on the new proposal are very welcome.
Cheers,
Bob
[1]
http://motools.svn.sourceforge.net/viewvc/motools/orderedlistsonto/branches/orderedlistsonto_v03/rdf/orderedlistontology.n3
[2]
http://motools.svn.sourceforge.net/viewvc/motools/orderedlistsonto/branches/orderedlistsonto_v03/gfx/olo_-_orderedlist.gif
[3] http://www.w3.org/TR/2004/REC-owl-guide-20040210/#simpleCardinality
Am 28.06.2010 10:51, schrieb Graham Klyne:
Bob,
A desired feature that led to the current rdf:List structure is the
ability to "close" a list - so some separate sub-graph can't "silently"
add properties not in the original. Your pattern might allow this
through additon of a "maxSlotIndex" property on "olo:OrderedList" (not
suggesting this as a design, just an example).
#g
--
Bob Ferris wrote:
Hello everybody,
in a longer discussion in the Music Ontology mailing list about how to
model a playlist, Samer Abdallah came up with a very good proposal[1]
of modelling a sequence/ordered list (as recently also discussed at
RDFNext Workshop[2]) as semantic graph (in RDF).
So, here we go:
- specification[3] (please also note the anonymous inverse properties)
- concepts and relations in a graphic[4]
- funky playlist example[5,6]
Again, thanks a lot Samer Abdallah for that cool concept.
Comments, suggestions, critics are very welcome.
Cheers,
Bob
PS: its all OWL based ;) however, we could also downgrade the concept
on the basis of rdfs:class, if needed.
[1]
http://groups.google.com/group/music-ontology-specification-group/msg/305a42362a1e4145
[2] http://www.w3.org/2009/12/rdf-ws/slides/rdflist.pdf
[3]
http://motools.svn.sourceforge.net/viewvc/motools/orderedlistsonto/trunk/rdf/orderedlistontology.n3
[4]
http://motools.svn.sourceforge.net/viewvc/motools/orderedlistsonto/trunk/gfx/olo_-_orderedlist.gif
[5]
http://motools.svn.sourceforge.net/viewvc/motools/orderedlistsonto/trunk/examples/orderedlist_-_example.n3
[6]
http://motools.svn.sourceforge.net/viewvc/motools/orderedlistsonto/trunk/gfx/olo_-_orderedlist_example.gif
--
--------------------BEGIN-OF-SIGNATURE--------------------
Bob Ferris
website: http://elbklang.net
e-mail: z...@elbklang.net
--------------------END-OF-SIGNATURE----------------------