We had some additional internal discussions, and came up with the following proposal, which tries to integrate all ideas and arguments put forward so far:
* Recombine the namespaces "Relation" and "Attribute", and call the new
namespace "Property".
* Introduce a new datatype Type:Wikipage which can be used for properties (the
former attributes).
* Annotations for Type:Wikipage are written like
[[property:=[[page name]]]] or [[property:=[[page name]] ]]
* Types of untyped properties are guessed, usually to be either Type:String or
Type:Wikipage (and maybe also Type:Float).
* Syntactic sugar is introduced: to abbreviate [[property:=[[page name]] ]],
one can just write [[property::page name]].
* The :: notation enforces the type. If another type than Wikipage is already
given, annotations with :: will not be stored, but are still rendered as
normal articles. Hence, changing one type can not easily break existing
articles.
This will hopefully enable us to support n-ary relations at some point. Here
is our plan:
* Basically, one would allow properties to have types of the following form:
[[has Type:=[[Type:Weight]]; [[Type:Wikipage]] ]] or
[[has Type:=[[Type:Wikipage]]; [[Type:Date]]; [[Type:Date]] ]]
(maybe we can do something about the large number of [[]] too ...)
* Such properties can then be used in statements of the form
[[has ingredient:=300g; [[Sugar]] ]] or
[[has president::Bush; 2001; 2008]]
(note that we again use :: to save [[]] around the first value)
* On a page, by default they would be displayed by using parentheses:
"300g (Sugar)" or
"Bush (2001, 2008)"
* The formatting can be controlled by providing templates on the property
page, e.g. to obtain
"300g Sugar" or
"Bush (2001-2008)"
* It will be possible to omit any of the values of n-ary relations, and the
system will try to guess what was omitted. If this is not clear, users can
use an empty value to clarify that something was omitted. Examples:
[[has president::Bush (2001)]]
-> just gives the start date (the end might be earlier than 2008 -- who
knows ...)
[[has president::Clinton]]
-> omits all dates; note that this looks like a normal "Relation"
[[has president::Washington; ;1797]]
-> omit first date; maybe the user was not sure of it
* Omitted values will be displayed as "?", though formating templates could
check this and do something else if they like.
* Querying will largely work as it does now, with additional syntax using ;
* Some details must still be defined, and it will be a lot of implementation
work.
More things to discuss, I guess ...
-- Markus
On Sunday 25 March 2007 16:44, Ittay Dror wrote:
> Markus Krötzsch wrote on 03/25/07 15:56:
>
>
> [snip]
>
> == New proposals ==
>
> 1) Keep everything as it is.
> 2) Keep the syntax :: and :=, but otherwise unify Attributes and Relations
> (possibly calling all of them properties). Do checks to ensure that ":="
> and "::" are used with properties of the right type.
> 3) Unify Attributes and Relations completely, allowing some Type:Wikipage
> and adopting Type:String as a default that catches everything.
>
>
> I liked Günther's syntax proposal. i suggest using Type:String for any
> property that is not of the form [[prop]]. by using such a form, the user
> indicates the type of property is Type:Wikipage. This will also solve the
> annotation removal issue.
>
> so: [[capital:=[[Berlin|alternate text]]]] [[located in:=Europe|alternate
> text 2]] means Berlin is a wiki page and Europe is a value. if at some
> point someone decides to change the type of 'located in' to Type:Wikipage,
> there's no problem (that is, the braces around the property value have
> meaning only if the type of property is not defined)
>
> 4) Unify Attributes and Properties and use a template-like syntax that is
> always put around the annotated wikitext.
>
> Examples:
> * No annotation: 1,000,000 [[USA]]
> * 2): [[population:=1,000,000]] [[is located in::USA]]
> * 3): [[population:=1,000,000]] [[is located in:=USA]]
> * 4): {{population:=1,000,000}} {{is located in:=[[USA]]}}
>
> Feel free to order those proposals according to your preference (and let's
> ignore details like ":=" vs. "::" for now).
>
> Regards,
>
> Markus
>
> On Friday 16 March 2007 17:31, Markus Krötzsch wrote:
>
> Hello SMW users!
>
> Please take a few minutes to decide upon the future of SMW syntax. Short
> answers suffice.
>
> ----
>
> Our increasing impression is that the distinction between Relations and
> Attributes in SMW is no longer the best solution. It was useful when ":="
> still behaved mostly different from "::", but it seems that the growing
> number of types of attributes might as well include a type "wikipage" that
> makes them act like relations. This could simplify wiki syntax as well as
> explaining SMW to new users.
>
> So, dear SMW users, what do you think?
>
> (1) Should we merge Relations with Attributes by providing a new datatype,
> and by treating untyped attributes as relations by default (instead of
> rejecting them as done now)? Why?/Why not?
>
> (2) If only one remains, should we rather use the syntax "::" or ":=" for
> annotations? The syntax ":=" suggests a way of writing inverse relations in
> queries via "=:", but maybe this is not obvious enough to be a good idea.
> Which syntax looks more user-friendly in general?
>
> (3) Should we call the remaining semantic elements "Relations"
> or "Attributes"?
>
> (4) How would the type "wikipage" that is used for emulating relations be
> called? "Article", "Page", "Wikipage", "Link", ...?
>
>
> Your feedback is greatly appreciated.
>
> Cheers,
>
> Markus
>
>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> Semediawiki-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/semediawiki-user
--
Markus Krötzsch
Institute AIFB, University of Karlsruhe, D-76128 Karlsruhe
[EMAIL PROTECTED] phone +49 (0)721 608 7362
www.aifb.uni-karlsruhe.de/WBS/ fax +49 (0)721 693 717
pgpnqAOcAKdUj.pgp
Description: PGP signature
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Semediawiki-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/semediawiki-user
