On 06/10/11 16:09, CW Dillon wrote: > Jesse, > Ooh. I hadn't thought of that, with the recipe example. You're right. > ...there's always so much more that can be done! > > So, in addition to the "elegance" of option #2 is the flexibility of not > *needing* an interim object to get at it's data. If a data page is > desired/required, it can be created. OK. I'm convinced but, I'm only a > user. > > Markus, Which way are you leaning?
Still toward #2. The only issue with this is that I will have to implement a bit more to make it work. Another nice aspect of #2 is that it completely voids the "property direction" discussion that we had regarding the fact that SIO internal objects point towards a page while Option #1 points away from it. With Option #2, there is no property required at all and one can create properties in either direction. Cheers, Markus > On Wed, Oct 5, 2011 at 3:16 PM, Jesse Wang <wjxh...@gmail.com > <mailto:wjxh...@gmail.com>> wrote: > > Clarence, I regard your distinction between "address" and "recipe" > as a practical modeling choice, it is case by case as you said. If > "500g of flour" or "a teaspoon of sugar" is used often enough, maybe > it makes sense to create a page for it, and you can add extra > properties to it such as calories... > > Back to the choices. I favor #2. As Markus said, it looks elegant, > and inline with existing SMW syntax. Moreover, it feels to be Object > Oriented, and you can parse it and treat it as an object so that you > can develop API, and further some kind of semantic object editor, to > handle it. The fact that it can be nested is also big, it opens > opportunities. Parsing and replacing text may also be easier. Say, > one day, you decide to change "Street Address" into "Physical > Address" then parsing and replacing existing properties should be > easier - does not have to go to all "#subobject" parser functions to > do it... > > Jesse > > On Mon, Oct 3, 2011 at 6:50 PM, CW Dillon <cwdil...@gmail.com > <mailto:cwdil...@gmail.com>> wrote: > > Markus, > Thanks for taking this on. I talked myself out of both solutions > three times, just in the span of writing a response. This is a > tough problem, I think. So, what niggles at me is whether it > is reasonable to argue for solution 1 or solution 2 based on > whether the "something" in the middle is real or abstract? > > I mean, you gave an example using an address but Yaron usually > talks about N-ary relations using a recipe analogy. An address > is a real thing that exists irregardless of where it's mentioned > in the wiki and the address has parts (which also have some sort > of relatedness in the real world). I think that in the case of > the address, it would be OK to make a wiki page for that > data--12 Downing Street is relevant even if the PM moves to 14 > Downing St, because it's still a real place. It's relevant > because some person or business occupies (or "Has") that address. > > Whereas the recipe example (quantity+ingredient) is more of an > adverb+verb combination and they are only relevant to each other > in the specific instance (and completely meaningless outside of > the recipe context). "500g of flour" would never deserve its own > wiki page. > > I think solution 1 suits the real case better but, would work > for both cases. Solution 2 really only works for the abstract > case. However, since the real case can be solved by making a > wiki page but the abstract case cannot, maybe solution 2 is the > preferable option. That way,people won't go around NOT making > wiki pages about things that really ought to have pages made > about them. > > -Clarence > > > > On Mon, Oct 3, 2011 at 5:02 AM, Markus Krötzsch > <mar...@semantic-mediawiki.org > <mailto:mar...@semantic-mediawiki.org>> wrote: > > Following up the discussions we had at SMWCon in Berlin, we > have now > implemented a new feature for "internal objects" in SMW. > This email > explains this feature and starts the discussion on some open > questions > for it to become stable. > > > == Goal == > > Allow SMW annotations to refer to objects that have their own > property-value pairs just like wiki pages, but that do not > actually have > an article in the wiki. This can be used to "group" > property-value pairs > given on one page without requiring new auxiliary pages to > be created. > It also integrates the main functionality of the Semantic > Internal > Objects (SIO) extension into SMW. > > > == Feature Overview: Current Prototype Implementation == > > SMW now has a new "subobject" feature. For example, you can > use the > parserfunction #subobject on some page "Example page" as > follows: > > {{#subobject:street address > | street name=Parks Road > | postcode=OX1 3QD > | city=Oxford > | country=UK > }} > > This does the following: > > (A) create a new subobject called "Example page#_anInternalId", > (B) assign the property values for "street name", ..., > "country" to this > subobject, > (C) assign the subobject "Example page#_anInternalId" as a > property > value for "street address" to "Example page". > > You could have achieved a similar effect as follows: > > (A') create a new page called "my auxiliary page", > (B') edit this new page to contain the text: > > [[street name::Parks Road]] > [[postcode::OX1 3QD]] > [[city::Oxford]] > [[country::UK]] > > (C') edit the page "Example page" to contain the text: > > [[street address::my auxiliary page]] > > > The difference when using #subobject is that you do not > create a new > auxiliary page. Instead, a subobject of "Example page" is > created by > SMW. Also, the function #subobject does not display anything > unless an > error occurred that needs to be reported. > > Subobjects are named automatically by following the schema > "Parent page > name#_someInternalId". When subobjects are displayed to > users, they thus > appear like links to sections within their parent page. This > can happen, > e.g., subobjects might occur in query results (example > above: {{#ask: > [[postcode::OX1 3QD]] }}). Likewise, subobjects are also > addressed by > this name "Parent page name#_someInternalId" in all search > and export > interfaces in SMW. For example, one can view the data for > one particular > subobject in Special:Browse. > > In general, subobjects should work like normal pages in most SMW > interfaces. The goal of this naming is to avoid any clashes > with real > pages and with real sections in real pages while still > allowing the same > methods to be used. > > The feature can be tested in the current SVN version but it > is still > unstable and might change significantly (read on). > > > == Relation to Semantic Internal Objects == > > The feature is very similar to the SIO extension. The > difference is that > in SIO, the main property ("street address" above) points > from the > subobject to the parent page. In the above example, "street > address" > really means "has street address" while in SIO it would be > used like "is > street address of". > > The other difference is that subobjects work with both SQL > and RDF > stores, are exported in RDF and are compatible with > interfaces like > Special:Browse. > > > == Alternative Proposal == > > Instead of having a parser function that creates a subobject > and assigns > it to a property as a value, one could also have a parser > function that > only does the first thing and that *returns* a subobject for > later use. > This would require some further changes but it might be more > elegant. > > For example, a call like > > {{#subobject: street name=Parks Road | postcode=OX1 3QD| > city=Oxford }} > > would just "create" such an object and return its name (e.g. > "Example_page#_someId"). Then one could use this name as a > value to > other properties, e.g.: > > [[street address::{{#subobject: street name=Parks Road > | postcode=OX1 3QD > | city=Oxford > }}]] > > One advantage of this is that one could arbitrarily nest > subobjects, > i.e. use subobjects as property values when declaring other > subobjects > (SMW can already do this, just the input syntax does not > support it). > Another advantage is that subobjects could (optionally) be > named instead > of using the name generated by SMW now. For example, one > could have > > {{#subobject:department_address > |street name=Parks Road | postcode=OX1 3QD| city=Oxford }} > > to create a subobject called "Example > page#department_address" which > could be used in other annotations on *any* page (this is > already > possible with subobjects now, but since their names are > generated by SMW > they might not be stable over time). In this case, it might > be less > desirable to return the name of the subobject. > > Overall, this alternative approach would allow subobjects to > be used as > first-class citizens of the SMW data space instead of > viewing them as > auxiliary objects for encoding compound property values. > > > == Request for Comments == > > Feedback is welcome. The first question is which approach to > subobjects > should eventually be used. The follow-up question is how the > respective > parser function should be called. But there might also be > completely > different comments and questions. > > > Cheers, > > Markus > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT > infrastructure contains a > definitive record of customers, application performance, > security > threats, fraudulent activity and more. Splunk takes this > data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Semediawiki-user mailing list > semediawiki-u...@lists.sourceforge.net > <mailto:semediawiki-u...@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/semediawiki-user > > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data > and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Semediawiki-devel mailing list > Semediawiki-devel@lists.sourceforge.net > <mailto:Semediawiki-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/semediawiki-devel > > > ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 _______________________________________________ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel