From: Tony B. <ton...@ka...> - 2006-06-10 09:21:16
|
I'm playing with the Semantic Mediawiki extension on the Northern Ireland Goverment wiki (http://nigov.tmtm.com/) and the issue that's arisen very quickly is how to best set attributes that are connected to a relationship. So, for example, [[Alban Maginness]] was councillor for [[Belfast City Council]] for [[Oldpark]] area in 2005 and [[Castle]] area in 2004. The 'year' attributes here are each related to two different relationships, and I can't work out the best way to represent this. As well as displaying the data on the [[Alban Maginness]] page itself, I will want to be able to query for 'all Belfast City Council members in 2004' and 'all Belfast City Council members in 2005'. These queries would show district represented and political party affiliations (which can of course also change). A similar problem occurs in annotating the data of some Council decisions:=20 In the [[Belfast City Council Development (Arts) Sub-Committee Minutes 10 February 2005]] funding was allocated to various Arts organisations. * [[Belfast Community Circus School]] was allocated =A330,000. * [[Belfast Festival at Queens]] was allocated =A360,000. * [[Belfast Film Festival]] was allocated =A325,000. etc. Each of these can have a [[funding granted at::]] relationship, but how can I then set an attribute for each amount, such than on the page for [[Belfast Film Festival]], for example, I can <ask> a query for all funding decisions including their amounts? Thanks, Tony |
From: S P. <ski...@ea...> - 2006-06-11 00:52:10
|
Tony Bowden wrote: > I'm playing with the Semantic Mediawiki extension on the Northern > Ireland Goverment wiki (http://nigov.tmtm.com/) and the issue that's > arisen very quickly is how to best set attributes that are connected to > a relationship. > The short answer is it's not part of SMW and it's not an obvious part of RDF. RDF deals with subject - property - value triples, where you can think of the property as an arrow between the subject and value. You're trying to annotate the relationship, a particular arrow. It seems easy to extend SMW/MediaWiki editing to do this, e.g.: [[was councillor of::Castle{from date:=2004-01-07}{to date:=2005-01-06}]] and even easier in XML where you can insert extra elements and attributes willy-nilly. But if you extended SMW this way it won't be queryable as RDF and it's very hard to store in a database, so you'd have to use XPath/XQuery to root around in your custom XML dialect. . People specifically discussed time at http://meta.wikimedia.org/wiki/Semantic_MediaWiki/Open_issues and its talk page, and http://wiki.ontoworld.org/index.php/Help_talk:Relation , but with no implemented solutions. > So, for example, [[Alban Maginness]] was councillor for [[Belfast City > Council]] for [[Oldpark]] area in 2005 and [[Castle]] area in 2004. > Ignoring the time part, I think you want to say that a councillor of Oldpark entails being a councillor of Belfast City. I'm far from expert enough in ontologies to know how to model that. But if you had a category or relationship for the property [[is located in]], then that might be queryable in an inline query that returns what you want. Sometimes you can separate things out to get SMW to do what you want. For example, create relations [[was allocated money in 2004]], [[was allocated money in 2005]], etc., and cheat by querying on "relation starts with 'was allocated money...'". Or make a the relationship its own article and give that properties; for example create the article "2004 Allocation to Belfast Film Festival with properties amount:=25000 , funding granted on:=2005-02-10, recipient::Belfast Festival, approved_by::Alban Maginness, and category:Funding Decision. This is hard stuff! Maybe RDF Reification is an attempt to address making statements about statements, but the Shelley Powers book section is named "Reification: the RDF Big Ugly" and my comprehension goes downhill from there. :-) Cheers, -- =S - - - - - - rest of original to end - - - - - - > The 'year' attributes here are each related to two different > relationships, and I can't work out the best way to represent this. As > well as displaying the data on the [[Alban Maginness]] page itself, > I will want to be able to query for 'all Belfast City Council members > in 2004' and 'all Belfast City Council members in 2005'. These queries > would show district represented and political party affiliations (which > can of course also change). > > A similar problem occurs in annotating the data of some Council > decisions: > > In the [[Belfast City Council Development (Arts) Sub-Committee Minutes > 10 February 2005]] funding was allocated to various Arts organisations. > > * [[Belfast Community Circus School]] was allocated �30,000. > * [[Belfast Festival at Queens]] was allocated �60,000. > * [[Belfast Film Festival]] was allocated �25,000. > etc. > > Each of these can have a [[funding granted at::]] relationship, but how > can I then set an attribute for each amount, such than on the page for > [[Belfast Film Festival]], for example, I can <ask> a query for all > funding decisions including their amounts? > > Thanks, > > Tony > |
From: Tony B. <ton...@ka...> - 2006-06-11 09:11:05
|
On Sat, Jun 10, 2006 at 05:49:50PM -0700, S Page wrote: > It seems easy to extend SMW/MediaWiki editing to do this, e.g.: > [[was councillor of::Castle{from date:=2004-01-07}{to date:=2005-01-06}]] > ... But if you extended SMW this way it won't be > queryable as RDF and it's very hard to store in a database, so you'd > have to use XPath/XQuery to root around in your custom XML dialect. I don't follow. Why can't this be stored in the database, or be queryable as RDF? Isn't this what anonymous nodes are for? > This is hard stuff! Maybe RDF Reification is an attempt to address > making statements about statements, but the Shelley Powers book section > is named "Reification: the RDF Big Ugly" and my comprehension goes > downhill from there. :-) ISTR that around the time that book came out there was a lot of discussion going on about how best to handle reification. I haven't really kept up with what's going on in the RDF world so I don't know the current state of play. But I think that, no matter what the abstraction or implementation, it's an essential concept, both generally for RDF, and specifically for a Semantic Wiki. If one of the goals of this project is to be capable of being layered on to Wikipedia, i would presume that we wouldn't want to have to create lots of new pages there: we need to be able to mostly just annotate all the links that already exist there. But Wikipedia pages often contain statements that need to be handled like this. "In the 1961 census the population was 132,104, but by 1981 this had dropped to 89,103". Creating the combinatorial explosion of pages like "Mytown in 1961 census", "Mytown in 1981 census", "Yourtown in 1961 census", "Yourtown in 1981 census", etc., where there is no other need for these pages, seems like it would just be making humans work around a technology problem and would, over time, lead to more pages being purely structural, rather than properly encyclopedic. I appreciate that it's a hard problem, and we may not come up with a nice solution any time soon, but I've got to think that there's one out there :) Thanks, Tony |
From: MovGP0 <mo...@gm...> - 2006-06-11 15:25:27
|
<snip /> > Tony Bowden wrote: > > On Sat, Jun 10, 2006 at 05:49:50PM -0700, S Page wrote: > > It seems easy to extend SMW/MediaWiki editing to do this, e.g.: > > [[was councillor of::Castle{from date:=2004-01-07}{to > > date:=2005-01-06}]] ... But if you extended SMW this way it won't be > > queryable as RDF and it's very hard to store in a database, so you'd > > have to use XPath/XQuery to root around in your custom XML dialect. > > I don't follow. Why can't this be stored in the database, or be > queryable as RDF? Isn't this what anonymous nodes are for? <snap /> Right. Currently its possible to do this only by creating a new article in a separate Namespace. But we (the SMW-users) whish that [[was councilor of::Castle{from date:=2004-01-07}{to date:=2005-01-06}]] [[is councilor of::Waterworld{from date:=2005-01-07}]] in the Article "Anno Nymous" will get expressed as: <rdf:RDF> <smw_relation:was_councilor_of rdf:about="&smw_article;Anno_Nymous" rdf:ID="&smw_virtual;Anno_Nymous_0"> &smw_article;Castle </smw_relation:was_councilor_of> <smw_attribute:from_date rdf:about="&smw_virtual;Anno_Nymous_0"> 2004-01-07 </smw_attribute:from_date> <smw_attribute:to_date rdf:about="&smw_virtual;Anno_Nymous_0"> 2004-01-07 </smw_attribute:to_date> <smw_relation:is_councilor_of rdf:about="&smw_article;Anno_Nymous" rdf:ID="&smw_virtual;Anno_Nymous_1"> &smw_article;Water_World </smw_relation:is_councilor_of> <smw_attribute:from_date rdf:about="&smw_virtual;Anno_Nymous_1"> 2005-01-07 </smw_attribute:from_date> </rdf:RDF> In the current version of Semantic Media Wiki this is afaik not possible, because you need to make Statements about Statements and therefore you need their ID. Another thing that is currently not possible is creating a Triplet from a table like: {| |- | Anno Nymous || was councilor of || Castle |- | Anna Bolika || was councilor of || Waterworld |- |} Which might get expressed as: [[Anno Nymous::was councilor of::Castle]] [[Anna Bolika::was councilor of::Waterworld]] Without the need of creating Articles for "Anno Nymous" or "Anna Bolika". Ys, MovGP0 |
From: Tony B. <ton...@ka...> - 2006-06-11 18:44:02
|
On Sun, Jun 11, 2006 at 05:25:13PM +0200, MovGP0 wrote: > In the current version of Semantic Media Wiki this is afaik not possible, > because you need to make Statements about Statements and therefore you need > their ID. Just so I know what I should be researching and thinking more about here, do you mean that any such change would need to be in how we store information in the database, or in how we construct the RDF for a specific article? Thanks, Tony |
From: glenn m. <gl...@fu...> - 2006-06-11 03:54:50
|
> So, for example, [[Alban Maginness]] was councillor for [[Belfast City > Council]] for [[Oldpark]] area in 2005 and [[Castle]] area in 2004. This is certainly not hard in RDF. What's really going on here, in ontological terms, is that there's an extra object type in the middle, called a Council Term. A Council Term takes place in a Year, and represents an Area. Then a Person can serve a Council Term. Then your query for all 2004 Council members would look for all People who served a Council Term with a Year of 2004. This is all easily represented with triples, and even more easily expressed in N3, where the intermediate object can be anonymous and declared inline. To do this in SMW, however, you would need to create the Council Term objects as pages of their own: one for every combination of seat and year. This may or not be acceptable overhead. Similarly, with the grants, there would need to be a bunch of Grant objects/pages, each of which has an Amount and a Date and a Recipient. So the difficulty is not in the ontology or the triples, it's in the semantically artificial MW granularity of objects as pages. |
From: Tony B. <ton...@ka...> - 2006-06-11 08:53:48
|
On Sat, Jun 10, 2006 at 11:54:47PM -0400, glenn mcdonald wrote: > To do this in SMW, however, you would need to create the Council Term > objects as pages of their own: one for every combination of seat and > year. This may or not be acceptable overhead. Similarly, with the > grants, there would need to be a bunch of Grant objects/pages, each of > which has an Amount and a Date and a Recipient. So the difficulty is > not in the ontology or the triples, it's in the semantically > artificial MW granularity of objects as pages. This is pretty much what I've been doing on our internal company wiki, where it's easy enough to just tell people they need to create all these pages. I was hoping, however, that for something like the Nigov wiki, where much of the content is imported minutes of council meetings, and it's a considerable overhead to create these intermediate pages (terms aren't that bad; grant pages are probably too much though) that someone could come up with a nice way to 'fake' this, perhaps with blank nodes or the like. Thanks, Tony |
From: Markus <ma...@ai...> - 2006-06-14 09:46:59
|
On Sunday 11 June 2006 10:53, Tony Bowden wrote: > On Sat, Jun 10, 2006 at 11:54:47PM -0400, glenn mcdonald wrote: > > To do this in SMW, however, you would need to create the Council Term > > objects as pages of their own: one for every combination of seat and > > year. This may or not be acceptable overhead. Similarly, with the > > grants, there would need to be a bunch of Grant objects/pages, each of > > which has an Amount and a Date and a Recipient. So the difficulty is > > not in the ontology or the triples, it's in the semantically > > artificial MW granularity of objects as pages. > > This is pretty much what I've been doing on our internal company wiki, > where it's easy enough to just tell people they need to create all these > pages. > > I was hoping, however, that for something like the Nigov wiki, where > much of the content is imported minutes of council meetings, and it's a > considerable overhead to create these intermediate pages (terms aren't > that bad; grant pages are probably too much though) that someone could > come up with a nice way to 'fake' this, perhaps with blank nodes or > the like. Yes, I could imagine this for SMW. We already fake some ternary relations f= or=20 the special case of units of measurement and it seems to be usable. But a=20 general solution is of course much harder. I would not use blank nodes as auxilliary nodes, since a blank node has a t= rue=20 existential semantics that is poorly understood by many people. I would use= =20 an auxilliary node with a generated unique name. =2D- Markus > > Thanks, > > Tony > > > > > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user =2D-=20 Markus Kr=F6tzsch Institute AIFB, University of Karlsruhe, D-76128 Karlsruhe ma...@ai... phone +49 (0)721 608 7362 www.aifb.uni-karlsruhe.de/WBS/ fax +49 (0)721 693 717 |
From: <vo...@fz...> - 2006-06-11 10:06:07
|
Hello Tony, > But I think that, no matter what the abstraction or implementation, > it's an essential concept, both generally for RDF, and specifically for > a Semantic Wiki. I agree. > If one of the goals of this project is to be capable of being layered on > to Wikipedia, i would presume that we wouldn't want to have to create > lots of new pages there: we need to be able to mostly just annotate all > the links that already exist there.=20 Yes, and we don't expect everything to be annotated. Maybe just annotating the obvious already brings great value. > But Wikipedia pages often contain statements that need to be handled > like this.=20 SO we just leave them unannotated. > "In the 1961 census the population was 132,104, but by 1981 this had > dropped to 89,103". I would simply annotate the current population and leave out the other data values. Otherwise we would end up to go from a simply idea (typed links) to a full-blown text-markup language which would look like latex and not like wiki. > Creating the combinatorial explosion of pages like "Mytown in 1961 > census", "Mytown in 1981 census", "Yourtown in 1961 census", "Yourtown in > 1981 census", etc., where there is no other need for these pages, seems > like it would just be making humans work around a technology problem and > would, over time, lead to more pages being purely structural, rather > than properly encyclopedic. I would not advise to create all these pages. > I appreciate that it's a hard problem, and we may not come up with a > nice solution any time soon, but I've got to think that there's one out > there :) I feel this discussion should be continued on sw...@ai... - it's a general question in semantic wikis what, how much and how to annotate. But for Semantic MediaWiki we want to stay simple. Kind regards, Max V=F6lkel -- Dipl.-Inform. Max V=F6lkel, Universit=E4t Karlsruhe / FZI nepomuk.semanticdesktop.org vo...@fz... +49 721 9654-854 www.xam.de First Workshop on Semantic Wikis: http://semwiki.org |
From: Tony B. <ton...@ka...> - 2006-06-11 18:40:49
|
On Sun, Jun 11, 2006 at 12:05:50PM +0200, Max V?lkel wrote: > Yes, and we don't expect everything to be annotated. Maybe just > annotating the obvious already brings great value. It absolutely does. I think Semantic Wikis in general (and Semantic Mediawiki in particlar) are wonderful. I'd hate to go back to plan Mediawiki now. I'm just hungry for even more! > I feel this discussion should be continued on > sw...@ai... - it's a general question in semantic > wikis what, how much and how to annotate. But for Semantic MediaWiki > we want to stay simple. I'll take it over there for the general discussion, but just to clarify the current thoughts specifically here: is the position that something like this could happen in Semantic MediaWiki if someone found an acceptably simple interface, and thus we should explore to see if such thing is actually possible, or that the extra level of indirection is probably too much for users to deal with conceptually, no matter what the interface was like, so we're never likely to go there? Thanks, Tony |
From: Markus <ma...@ai...> - 2006-06-14 09:25:59
|
On Sunday 11 June 2006 20:40, Tony Bowden wrote: > On Sun, Jun 11, 2006 at 12:05:50PM +0200, Max V?lkel wrote: > > Yes, and we don't expect everything to be annotated. Maybe just > > annotating the obvious already brings great value. > > It absolutely does. I think Semantic Wikis in general (and Semantic > Mediawiki in particlar) are wonderful. I'd hate to go back to plan > Mediawiki now. I'm just hungry for even more! > > > I feel this discussion should be continued on > > sw...@ai... - it's a general question in semantic > > wikis what, how much and how to annotate. But for Semantic MediaWiki > > we want to stay simple. > > I'll take it over there for the general discussion, but just to clarify > the current thoughts specifically here: is the position that something > like this could happen in Semantic MediaWiki if someone found an > acceptably simple interface, and thus we should explore to see if such > thing is actually possible, or that the extra level of indirection is > probably too much for users to deal with conceptually, no matter what > the interface was like, so we're never likely to go there? OK. My position is: if there is a sufficiently wiki-compatible input method= ,=20 then SMW should allow to state a (somehow restricted) set of n-ary relation= s=20 (e.g. relating Persons, Places, and Times as in the example). I also think= =20 the special case of time needs more discussion. It is not just some n-ary=20 relation, but it leads to the whole (research) problem of representing time= =20 in ontologies.=20 When supporting n-ary relations, we would not like users to employ these wh= en=20 creating a new article would really be in order. It should not happen that= =20 whole sub-graphs of potential articles are "hidden" via complex n-ary=20 relation (e.g. if I want to state something about an album of some artist,= =20 then I should give it a new article instead of making an n-ary "has album"= =20 relation for getting many propreties of the album into one annotation). In contrast to n-ary relations, we do not intend to support the annotation = of=20 annotations (reification), since we intend to stay compatible with both RDF= S=20 and OWL-DL. I also guess n-ary relations are a cleaner solution for most=20 common problems. Regards, Markus > > Thanks, > > Tony > > > _______________________________________________ > Semediawiki-user mailing list > Sem...@li... > https://lists.sourceforge.net/lists/listinfo/semediawiki-user =2D-=20 Markus Kr=F6tzsch Institute AIFB, University of Karlsruhe, D-76128 Karlsruhe ma...@ai... phone +49 (0)721 608 7362 www.aifb.uni-karlsruhe.de/WBS/ fax +49 (0)721 693 717 |
From: itsme213 <its...@ho...> - 2006-06-18 06:00:12
|
From: "Markus Krötzsch" <ma...@ai...> > if there is a sufficiently wiki-compatible input method, > then SMW should allow to state a (somehow restricted) set of n-ary > relations > (e.g. relating Persons, Places, and Times as in the example). Would this be the kind of thing you intend? on a page "Joe": [[knows :: [[who :: Frank, kind := "friend", since := 1992]] [[knows :: [[who :: Bob, kind := "acquaintance", since := 1981]] or as a shorter hand: [[knows :: [[who :: Frank, kind := "friend", since := 1992], [[who :: Bob, kind := "acquaintance", since := 1981]] |
From: <vo...@fz...> - 2006-06-19 08:43:27
|
>> if there is a sufficiently wiki-compatible input method, >> then SMW should allow to state a (somehow restricted) set of n-ary=20 >> relations >> (e.g. relating Persons, Places, and Times as in the example). > Would this be the kind of thing you intend? > on a page "Joe": > [[knows :: [[who :: Frank, kind :=3D "friend", since :=3D 1992]] > [[knows :: [[who :: Bob, kind :=3D "acquaintance", since :=3D 1981]] hmm, looks a bit like XML, except opening braces don't match closing braces, so more readable. i doubt that 'normal' users have a clue what they to there. What are the intended semantics of the above example? in n-triples notation: PAGE :knows _:1. _:1 :who :Frank _:1 :kind "friend" _:1 :since "1992" or are the latter two attributes attributes of Frank? Kind regards, Max V=F6lkel -- Dipl.-Inform. Max V=F6lkel, Universit=E4t Karlsruhe / FZI nepomuk.semanticdesktop.org vo...@fz... +49 721 9654-854 www.xam.de *Second* Workshop on Semantic Wikis: http://semwiki.org/wibke2006 |
From: itsme213 <its...@ho...> - 2006-06-19 15:02:37
|
>> on a page "Joe": >> [[knows :: [[who :: Frank, kind := "friend", since := 1992]] >> [[knows :: [[who :: Bob, kind := "acquaintance", since := 1981]] > What are the intended semantics of the above example? >in n-triples notation: >PAGE :knows _:1. >_:1 :who :Frank >_:1 :kind "friend" >_:1 :since "1992" Correct. The presentation of such semantic info in the fact-box would change so it does not show things like a href to _:1, but instead shows a "nested" fact box about _:1 |
From: <vo...@fz...> - 2006-06-19 16:07:51
|
>>> on a page "Joe": >>> [[knows :: [[who :: Frank, kind := "friend", since := 1992]] >>> [[knows :: [[who :: Bob, kind := "acquaintance", since := 1981]] >> What are the intended semantics of the above example? >>in n-triples notation: >>:Joe :knows _:1. >>_:1 :who :Frank >>_:1 :kind "friend" >>_:1 :since "1992" > Correct. > The presentation of such semantic info in the fact-box would change so it > does not show things like a href to _:1, but instead shows a "nested" fact > box about _:1 Hmmm, this is pretty weird modeling. Whats an intuitive way of modeling "Joe knows Frank, they are friends since 1992" in OWL? |
From: MovGP0 <mo...@gm...> - 2006-06-20 10:47:22
|
> Max V=F6lkel wrote: >=20 > >>> on a page "Joe": > >>> [[knows :: [[who :: Frank, kind :=3D "friend", since :=3D 1992]] > [[knows > >>> :: [[who :: Bob, kind :=3D "acquaintance", since :=3D 1981]] >=20 > >> What are the intended semantics of the above example? > >>in n-triples notation: >=20 > >>:Joe :knows _:1. > >>_:1 :who :Frank > >>_:1 :kind "friend" > >>_:1 :since "1992" >=20 > > Correct. >=20 > > The presentation of such semantic info in the fact-box would change > so > > it does not show things like a href to _:1, but instead shows a > > "nested" fact box about _:1 >=20 >=20 > Hmmm, this is pretty weird modeling. >=20 > Whats an intuitive way of modeling "Joe knows Frank, they are friends > since 1992" in OWL? >=20 I guess, by giving _:1 a more meaningful name: (Joe, Relation:knows, Frank) (Joe, _:is_since_1992_friend_of, Frank) (Frank, _:is_since_1992_friend_of, Joe) // you might want to use (_1, rdf:type, owl:SymmetricProperty) instead =09 (_:is_since_1992_friend_of, rdfs:subPropertyOf, Relation:is_friend_of) (_:is_since_1992_friend_of, Attribute:since, 1992) (Relation:knows, rdf:type, owl:ObjectProperty)=09 (Relation:is_friend_of, rdfs:subPropertyOf, Relation:knows) (Attribute:since, rdf:type, Type:DateTime) (Type:DateTime, rdf:type, rdfs:Literal) =09 etc. I'm not sure if its 100% valid, because I've intuitively* modeled it ;-) = * =3D I think that doesn't count much, because I know better how to = handle Ontologies than the common. Ys, MovGP0 |
From: <vo...@fz...> - 2006-06-20 12:40:15
|
>> Whats an intuitive way of modeling "Joe knows Frank, they are friends >> since 1992" in OWL? > I guess, by giving _:1 a more meaningful name: > (Joe, Relation:knows, Frank) > (Joe, _:is_since_1992_friend_of, Frank) > (Frank, _:is_since_1992_friend_of, Joe) // you might want to use > (_1, rdf:type, owl:SymmetricProperty) instead > > (_:is_since_1992_friend_of, rdfs:subPropertyOf, > Relation:is_friend_of) > (_:is_since_1992_friend_of, Attribute:since, 1992) > (Relation:knows, rdf:type, owl:ObjectProperty) > (Relation:is_friend_of, rdfs:subPropertyOf, Relation:knows) > (Attribute:since, rdf:type, Type:DateTime) > (Type:DateTime, rdf:type, rdfs:Literal) > > etc. Okay, and *now* we need a nice wiki syntax for this :-) Or: Do we really need this? Whats the 80:20 rule. What benefit do we get from modelign it this way? Whats is a real-life use case for this? Extra points: Use case should come from Wikipedia data. ;-) Max |
From: Tony B. <ton...@ka...> - 2006-06-20 14:07:43
|
On Tue, Jun 20, 2006 at 02:39:52PM +0200, Max V?lkel wrote: > Or: Do we really need this? Whats the 80:20 rule. What benefit do we > get from modelign it this way? Whats is a real-life use case for this? > Extra points: Use case should come from Wikipedia data. http://en.wikipedia.org/wiki/Reservoir_Dogs (or any other film) Cast list should be able to link to each Actor page, but there should also be a way to annotate the role played in the film (without creating a page per character) Tony |
From: MovGP0 <mo...@gm...> - 2006-06-21 09:40:01
|
> Max V=F6lkel wrote: >=20 > >> Whats an intuitive way of modeling "Joe knows Frank, they are > >> friends since 1992" in OWL? >=20 > > I guess, by giving _:1 a more meaningful name: >=20 > > (Joe, Relation:knows, Frank) > > (Joe, _:is_since_1992_friend_of, Frank) > > (Frank, _:is_since_1992_friend_of, Joe) // you might want to > > use (_1, rdf:type, owl:SymmetricProperty) instead > > > > (_:is_since_1992_friend_of, rdfs:subPropertyOf, > > Relation:is_friend_of) > > (_:is_since_1992_friend_of, Attribute:since, 1992) >=20 > > (Relation:knows, rdf:type, owl:ObjectProperty) > > (Relation:is_friend_of, rdfs:subPropertyOf, Relation:knows) >=20 > > (Attribute:since, rdf:type, Type:DateTime) > > (Type:DateTime, rdf:type, rdfs:Literal) > > > > etc. >=20 > Okay, and *now* we need a nice wiki syntax for this :-) Well, how is this one? [[{since:=3D1992}{rdfs:subPropertyOf::is friend of}::{Frank}{John}]] In that Example the Relation is Anonymous and encodes the same = information than in the above example. The _:<integer> is created dynamically from = the Array in the Relation-Part. Also the Relation is applied to an Array of other Peoples and therefore has the same Meaning than: [[{since:=3D1992}{rdfs:subPropertyOf::is friend of}::Frank]] [[{since:=3D1992}{rdfs:subPropertyOf::is friend of}::John]] >=20 > Or: Do we really need this? Whats the 80:20 rule. What benefit do we > get from modelign it this way? Whats is a real-life use case for this? > Extra points: Use case should come from Wikipedia data. Well, I think so. Describing such Relations is very common, so its not = hard to find examples.=20 Example taken from http://en.wikipedia.org/wiki/Albert_Einstein: <snip> He was awarded the 1921 Nobel Prize for Physics for his explanation of = the photoelectric effect in 1905 (his "wonderful year") and "for his = services to Theoretical Physics". </snip> I would model that as something like the following: [[{rdfs:subPropertyOf:got award} {date:=3D1921} {because:: {explained::photoelectric effect} {explained::Theoretical Physics} {date:=3D1905} } ::Nobel Prize#Physics]] The "wonderful year" Annotation is even more complex and might need to = be done in the Article [[1921 (Year)]] using [[{context of::Einstein}{rdfs:subPropertyOf::Name}:=3Dwonderful year]] If you want to make this Annotation within [[Einstein]] we might want to use: [[1921 (Year)::{context of::Einstein}{rdfs:subPropertyOf::Name}:=3Dwonderful year]] or by something like: [[1921{type::Year}::{context of::Einstein}{rdfs:subPropertyOf::Name}:=3Dwonderful year]] The last solution assumes an Article called 1921 describing the integer _and_ the year 1921, which is also common in Wikipedia. So we create not only a virtual Relation, but also a virtual Article. Anyway, I guess = that the last two examples are more complex than needed.=20 >=20 > ;-) Max >=20 ;-) MovGP0 |
From: itsme213 <its...@ho...> - 2006-06-23 18:24:39
|
> [[{since:=1992}{rdfs:subPropertyOf::is friend of}::{Frank}{John}]] I would do this simply as: [[is friend of:: [[who:: Frank, since := 1991]] ]] or, if the "," is problematic as a separator: [[is friend of:: [[who:: Frank]] [[since := 1991]] ]] The nested [[...]] simply signals ONE implicit instance of a friendship-like relation class, and each nested [[...]] defines a typed link or property value for that one implicit instance. I would simply repeat this for John. If I had to OWL-ize this I would represent the FriendShip relation class explicitly, and then and do: [[is friend of:: [[Category:FriendShip]] [[who::Frank]] [[since := 1991]] ]] What is wrong with this? It is simple enough for users. |
From: MovGP0 <mo...@gm...> - 2006-06-23 22:54:27
|
> itsme213 wrote: > > > [[{since:=1992}{rdfs:subPropertyOf::is friend of}::{Frank}{John}]] > > I would do this simply as: > > [[is friend of:: [[who:: Frank, since := 1991]] ]] The difference here is, that instead of: <rdf:Class rdf:ID="_:1"> <rdfs:subPropertyOf rdf:resource="is_friend_of" /> <since>1992</since> </rdf:Class> <rdf:Statement rdf:about="Beethoven"> <_:1>Frank</_:1> <_:1>John</_:1> </rdf:Statement> You are using: <rdf:Statement rdf:about="Beethoven"> <is_friend_of> <who>Frank</who> <since>1991</since> </is_friend_of> <is_friend_of> <who>Frank</who> <since>1991</since> </is_friend_of> </rdf:Statement> Correct rewriting should therefore look like: [[{since:=1992}{is friend of}::{Frank}{John}]] to [[ [[since:=1992]] [[is friend of]]::[[Frank]] [[John]] ]] Or for the other example: [[is friend of::[[who::Frank]] [[since:=1991]] ]] to [[is friend of::{who::Frank}{since:=1991}]] Anyway, I can't really see a difference, except you are using [[ and ]] instead of { and }, which is acceptable for me as well. But you're syntax might lead to a better inline representation: [[ [[:Since:=1992]] Beethoven [[is friend of|is a friend of]]::[[Frank]] and [[John]] ]]. Might get rendered as: Since 1992 Beethoven is a friend of [[Frank]] and [[John]]. And will still represent: <rdf:Class rdf:ID="_:1"> <rdfs:subPropertyOf rdf:resource="is_friend_of" /> <since>1992</since> </rdf:Class> <rdf:Statement rdf:about="Beethoven"> <_:1>Frank</_:1> <_:1>John</_:1> </rdf:Statement> > > or, if the "," is problematic as a separator: > > [[is friend of:: [[who:: Frank]] [[since := 1991]] ]] Personally I had the idea to using the "," for ordered lists, while don't using it for unordered Bags. You can keep that: Bags: [[is friend of::[[who::Frank]] [[since:=1991]] ]] [[is friend of::[[ [[who::Frank]] [[who::John]] [[since:=1991]] ]] List of Bags: [[is friend of::[[ [[who::Frank]] [[since:=1991]] ]] , [[ [[who::John]] [[since:=1992]] ]] ]] But [[is friend of::[[who::Frank, since:=1991]] ]] seems to be a not so good Syntax to me. > > The nested [[...]] simply signals ONE implicit instance of a > friendship-like relation class, and each nested [[...]] defines a typed > link or property value for that one implicit instance. > > I would simply repeat this for John. > > If I had to OWL-ize this I would represent the FriendShip relation > class explicitly, and then and do: > > [[is friend of:: [[Category:FriendShip]] [[who::Frank]] [[since := > 1991]] ]] > > > What is wrong with this? It is simple enough for users. > Category don't differ semantically to Articles, so your example leads to something like [[is friend of::Category:FriendShip]] which doesn't makes sense. Did you had another thought? Ys, MovGP0 |
From: itsme213 <its...@ho...> - 2006-06-24 02:12:10
|
> The difference here is, that instead of: > > <rdf:Class rdf:ID="_:1"> > <rdfs:subPropertyOf rdf:resource="is_friend_of" /> > <since>1992</since> > </rdf:Class> > <rdf:Statement rdf:about="Beethoven"> > <_:1>Frank</_:1> > <_:1>John</_:1> > </rdf:Statement> BUt this is not what I want to say, and is not (imho) the problem to be solved. Here is what I want to say in triples. I think is_friend_of causes confusion, so I changed it here to "friendship". Hope this is more clear :-) ############ # Beethoven has friendship with Frank since 1992 :Beethoven :friendship _:x _:x :who :Frank _:x :since "1992" Which I say without ambiguity on the :Beethoven page using: [[friendship:: [[who:: Frank]] [[since:=1992]] ]] The *nested* [[...]] signals the start of a single blank node _:x and *its* properties. (whether friendship is symmetric is a totally orthogonal issue). ############ # Beethoven has friendship with John since 1992 :Beethoven :friendship _:y _:y :who :John _:y :since "1992" Which I say using: [[friendship:: [[who:: John]] [[since:=1992]] ]] ########### # _:x and _:y are instances of Friendship _:x :type :Friendship _:y :type :Friendship Which I say using: [[friendship:: [[who:: Frank]] [[since:=1992]] [[type::Friendship]] ]] [[friendship:: [[who:: John]] [[since:=1992]] [[type::Friendship]] ]] (I earlier used Category as I thought this was the MW/SMW way to say rdfs:type; and I mistyped ":" for "::" -- so Category:FriendShip was most confusing. My apologies for this). ########### # Friendship is a class :FriendShip :type :Class + statements about Friendships' properties, ranges, etc. ################### To spell it out: the specific problem here is the usability gap between page-granularity resources and the modeling of N-ary relations with binary ones. The above facility would go a long way solve this problem. Thoughts? Perhaps I am missing something basic? |
From: MovGP0 <mo...@gm...> - 2006-06-27 19:09:44
|
> itsme213 wrote: > > > The difference here is, that instead of: > > > > <rdf:Class rdf:ID="_:1"> > > <rdfs:subPropertyOf rdf:resource="is_friend_of" /> > <since>1992</since> > > </rdf:Class> <rdf:Statement rdf:about="Beethoven"> <_:1>Frank</_:1> > > <_:1>John</_:1> </rdf:Statement> > > BUt this is not what I want to say, and is not (imho) the problem to be > solved. > > Here is what I want to say in triples. I think is_friend_of causes > confusion, so I changed it here to "friendship". Hope this is more > clear :-) No, there was no confusion - there are just different possibilities to express the same. Consider that "Beethoven is a friend of Frank since 1992." has the same meaning than "Beethoven is since 1992 a friend of Frank." MovGP0 |
From: itsme213 <its...@ho...> - 2006-06-21 19:17:49
|
> [[{since:=1992}{rdfs:subPropertyOf::is friend of}::{Frank}{John}]] I think subPropertyOf is not needed, this is just an instance of the ::is_friend_of relation. > Describing such Relations is very common Agree 100% |
From: glenn m. <gl...@fu...> - 2006-06-20 12:41:12
|
If friendship is defined as mutual, I would model "Joe knows Frank, they are friends since 1992" with a Friendship object, which has a time period (friendships end as well as begin, so think ahead!) and a list of 2 (or more!) people. Each person, then, would have a corresponding list of 0 or more friendships (or, more precisely, a set of :has_friendship relationships to friendship objects). Of course, then you need a rule language to express that P1->has_friendship->F1->involves_person->P2 implies P1->knows->P2 and P2->knows->P1... In any case, I would absolutely never embed data inside the title of a relationship, like "is_since_1992_friend_of". |