I don't think using "List" as a type name is a good idea, because "list" is
already generally used to indicate that a template field holds a list of
values. This naming is used even in SMW itself - the #declare function can
be called with "{{#declare:property-name=field-name#list}}". This naming
confusion could apply even to "Value list", actually.

As for a better name - how about "N-ary"? Yes, it's obscure, but then again
people probably wouldn't use this type unless they understood the concept
anyway. "N-ary" has the advantage that it doesn't introduce yet another term
- it's already the name used in the database table and code, and in
discussions.

I should note, since I'm on the subject, that I would just as well see these
"multi-value properties" removed from SMW altogether. Even if the issues
with querying get resolved, they're still an un-ideal solution: they're
inflexible, they don't support enumerations (i.e., a limited set of allowed
values), and, maybe most compellingly, they're not "semantic" - there's no
way to indicate what each value actually means. But maybe that's a topic for
another discussion...

-Yaron


On Thu, Jan 7, 2010 at 9:16 AM, Markus Krötzsch <
mar...@semantic-mediawiki.org> wrote:

> On Donnerstag, 7. Januar 2010, Jon Lang wrote:
> > Markus Krötzsch wrote:
> > > The code for n-ary/multivalued has now been changed in SVN, and a new
> > > system is in place. This email describes the changes for users, and
> asks
> > > for proposals on how to label some things that users will have to
> enter.
> > > This thread does not discuss the maximal number of fields in a
> > > multi-valued property (there is another thread for this).
> > >
> > > == Changes for the user ==
> > >
> > > The old way of declaring an n-ary property was to give a type
> annotation
> > > like the following on its property page:
> > >
> > > [[has type:: String; Number; Page]]
> > >
> > > This example declares a property that has three fields of the given
> order
> > > and type. The new code requires a modified declaration that contains
> two
> > > annotations:
> > >
> > > [[has type:: Value list]]
> > > [[has fields:: String; Number; Page]]
> > >
> > > So the type is no longer the list but it has a name, and the list of
> > > fields is given in a new property.
> >
> > Does the type have to be "Value list", or can you add "has fields" to
> > other properties?
>
> No, you have to specify the type.
>
> > My reasoning: in the "Defining N-ary Relations on
> > the Semantic Web" article[1], a distinction was made between an N-ary
> > relation that represents a primary value with supplementary
> > information and an N-ary relation that represents different aspects of
> > a common relation with no preference for one value over any of the
> > others.  It occurs to me that by allowing "has fields" on non-"Value
> > list" property pages, we could capture this distinction quite
> > intuitively: if the property page includes "has type:: Value list",
> > then there is no primary value: any queries concerning values for that
> > page must refer to the fields; if the property page specifies any
> > other type, then that is considered to be the primary value, and
> > queries for values on that page assume that you're referring to the
> > primary value unless you explicitly ask for the fields.
>
> I see your point but I don't think that this is needed. The reason is that
> there would be basically two cases that could occur:
>
> (1) The primary value is a wiki page. In this case, assigning a value to
> the
> N-ary relation would specify additional annotations of that primary page
> value. So one would specify annotations of a page within some other page.
> This
> is not supported by SMW and it is not needed, since one can always edit the
> primary page directly.
>
> (2) The primary value would be a data value that is not a page. Then you
> would
> attach annotations to a datavalue, e.g. to the number "42". This is not
> desirable, since neither SMW nor RDF support annotations on data literals
> such
> as numbers or strings.
>
> >
> > Related to this is the notion of named fields.  Please give the option
> > to attach meaningful names to the fields for querying purposes, so
> > that the user doesn't have to specify a positional list of values.
> > For instance:
> >
> > [[has fields:: name=String; count=Number; source=Page]]
> >
> > This would allow queries for instances of the property by means of a
> > specific value for the name, property, and/or source.
>
> As I said, this task can be approached now. It is not going to be an
> extension
> of Type:List (the current favourite name of "Value list"), but another type
> that allows for these inputs (how could this be called?). Thanks for your
> syntax proposal; I think this is probably the most straightforward syntax
> to
> pick.
>
> I should add that we can have any number of such types that use different
> syntaxes for different purposes. One could also have special-purpose types
> for
> naturally occurring compound data such as street addresses (as written in
> some
> language). I am not going to write these, but they could be part of
> extensions. SMW now has an abstract datavalue class SMWContainerValue that
> can
> be used to create any kind of value implementations that store values that
> resemble an annotated page (just "internal", i.e. without a name).
>
> -- Markus
>
>
> --
> Markus Krötzsch  <mar...@semantic-mediawiki.org>
> * Personal page: http://korrekt.org
> * Semantic MediaWiki: http://semantic-mediawiki.org
> * Semantic Web textbook: http://semantic-web-book.org
> --
>
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and
> easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> Semediawiki-user mailing list
> semediawiki-u...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/semediawiki-user
>
>
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Semediawiki-devel mailing list
Semediawiki-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/semediawiki-devel

Reply via email to