It seems to me that, given that much data, you'd be better off creating a separate page for each head of state... especially since the current n-ary relations solution doesn't support enumerations, which you want (since there's nowhere to specify the set of allowed values). If you created a separate page for each head of state, you could easily create an SMW query to display them all together and sort on each property.
My question below:Excellent, and I've already documented that in the wiki that I
S Page wrote:
> Andreas Wombacher wrote:
>> I just installed the version 1.0 of the SMW. I saw in the code that
>> there are new data types like for example the nary data type.
>> Can you please provide a wiki text example how to make use of this data
>> type in defining a property and an ask statement on how to retrieve it.
> An ask statement for an n-ary property is much the same as any other
> property; I put one on http://ontoworld.org/wiki/N-ary_relations
> I don't know of any way to control the appearance
> property1 (prop2, prop3, ...)
> To users, N-ary isn't a new data type, it's just saying a property's
> type is a collection of datatypes.
> In general a datatype's documentation is on its type page on
> semantic-mediawiki.org, e.g.
> =S Page
But: how does a query /sort/ the values of an n-ary relationship? Do all
n-ary properties sort on the first value? I can think of several cases
in which I might want to sort on the second or third. If, for example, I
wanted to build a list of heads-of-state, then I would declare an n-ary
property like this: [[has type::date; date; date;date]] (or use the
"historical date" property that I developed). Then I would annotate each
head-of-state like this: [[milestones::<born>;<assumed office>;<left
office>;<died>]]. I could even declare a massive "milestones" property
with as many dates as I would need, each one having a specific meaning,
like: born, flourit,assumed office,left office,how left,died as [[has
type::date;date;date;date;string;date]] (The "how left" might have the
allowed values "failed of re-election", "term-limited", "declined to
seek re-election", "resigned", "removed", "died", "assassinated")
But then if I ran an inline query to produce a table, I might not want
to sort those heads-of-state by the years in which they were /born/, but
rather the years in which they /assumed office/. Therefore I would need
to sort on the second member of the collection, not the first.
I might also want to run a query on all US Presidents and pick out the
eight who died in office, or specifically the four who were
assassinated--and I'd like to do it by picking out the appropriate
values in the collection.
Can I do that? If so, how? If not, I hereby request that the developers
add that as a feature. That kind of flexibility would allow one to do
without having individual properties for individual kinds of dates, and
make semantic annotation far easier than it is today.
Terry A. Hurlbut
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
Semediawiki-user mailing list