Mark Wallace wrote: > Thanks very much. I think this is the pointer I needed! > -Mark I would like to add this reference to this discussion:
Sergiu Dumitriu and Marta Gîrdea and Sabin Buraga, 2007. Knowledge Management in a Wiki Platform via Microformats http://www.aaai.org/Papers/FLAIRS/2007/Flairs07-058.pdf Thanks! > > On 11/10/2010 12:35 PM, Sergiu Dumitriu wrote: >> On 11/10/2010 04:16 PM, Mark Wallace wrote: >>> On 11/10/2010 9:42 AM, Vincent Massol wrote: >>>> Hi Mark, >>>> >>>> On Nov 10, 2010, at 3:24 PM, Mark Wallace wrote: >>>> >>>>> On 11/5/2010 1:15 PM, Vincent Massol wrote: >>>>>> . . . >>>>>>> A different example of what I'm trying to do, using a syntax flavor >>>>>>> closer to the XWiki 2.1 syntax, might be: >>>>>>> >>>>>>> Berlin is located in >>>>>>> [[Germany>>doc:Main.Germany||property="locatedIn"]] >>>>>> This is a link. If you don't need a link you should instead write: >>>>>> >>>>>> Berlin is located in (% property="locatedIn" %)Germany(%%) >>>>>> >>>>>> or >>>>>> >>>>>> Berlin is located in (% property="locatedIn" >>>>>> %)[[Germany>>Main.Germany]](%%) >>>>>> >>>>>> Note: This is going to generate a FormatBlock in XDOM, which you can >>>>>> access with Transformation and Macros. >>>>> This is something I do from Java? Can you point me to where to get >>>>> started? I've spent a good bit of time with the source code and >>>>> xwiki.org documentation, but have not yet been able to determine >>>>> where to get started. :-( >>>> There are several places where you can interact with the document's >>>> DOM (we call it the XDOM): >>>> - in Rendering Transformations >>>> - in scripts written in pages since you can get the XDOM using >>>> doc.getXDOM() and thus get this information to perform whatever you >>>> want >>>> - in Renderers. For example you might want to generate something >>>> visual or an auto link. >>>> >>>> If you want more help you need to tell us what you want to do with >>>> this information. >>> Vincent, thanks so much for your help and patience. >>> >>> What I want to do is have the semantic functionality described at the >>> bottom of this google code "wikimodel" homepage [1] which is: >>> >>> "Semantic Web compatibility" >>> One of the most important issues is to be compatible with the main >>> standard/datamodel of Semantic Web -- with Resource Description >>> Framework (RDF). It means that both models (WEM as well as WOM) >>> offer the possibility to map elements from wiki pages to >>> RDF-statements. So each wiki page can be considered as a node in an >>> RDF-graph. It allows to transform wiki-tools into powerful yet >>> simple Semantic Web applications. >>> >>> Or if you are familiar with Semantic Mediawiki (SMW) [2], I am looking >>> to get its basic functionality. (I have used SMW extensively, but now >>> want to consider XWiki because it is Java based and I hope it will be >>> easier to extend in various ways.) >>> >>> That functionality is: >>> 1) Treat pages as nodes in an RDF graph. This includes the ability to >>> categorize pages (make them a member of an owl:Class) >>> 2) Treat links between pages as owl:ObjectProperties. >>> 3) Treat certain values on pages as owl:DatatypeProperties >>> 4) Dynamically query wiki model based on these classes and properties. >>> >>> For example, say I have a page on Berlin and a page on Germany. The >>> Berlin page looks like this in standard XWiki markup: >>> >>> Berlin is located in [[Germany>>doc:Main.Germany]] and has a population >>> of 3,400,000. >>> >>> >>> So we know there is a link between Berlin and Germany, but we don't >>> know >>> what the link means. We also don't know what kind of "object" Berlin >>> is. >>> >>> For my RDF-ish model of information, I'd like to add a bit more markup >>> to the page to clarify this, e.g. >>> >>> Berlin is located in >>> [[Germany>>doc:Main.Germany||property="locatedIn"]] >>> and has a population of (% property="population" %)3,400,000(%%). >>> >>> [[Category:City]] >>> >>> Note how I've given a type to the link between Germany and Berlin >>> (it is >>> a locatedIn property), some structure to the formerly plain text value >>> 3,400,000 (it is now a named property of Berlin), and finally, with the >>> [[Category:City]] markup (or something like it) I have stated the kind >>> of "object" Berlin is; it is a city. >>> >>> When this page is saved, I want the database to know the following: >>> >>> Berlin hastype City >>> Berlin locatedIn Germany >>> Berlin population 3,400,000 >>> >>> I want the database/datamodel to know this so I can: >>> 1) query this kind of information from other pages for dynamic table >>> building >>> 2) render this information as RDF through a SPARQL endpoint. >>> >>> >>> I hope this clarifies my intent. In summary, I want to intercept page >>> markup on page edits and maintain an RDF-ish model of the knowledge in >>> the wiki. >>> >>> Thanks for any help you can provide. >> Hi Mark, >> >> Here's a sketch of what you could do: >> >> 1. The metadata store should be implemented outside the standard XWiki >> store, using a database suited for storing RDF and that knows SPARQL; it >> should provide nice APIs to store and retrieve information from it >> 2. Write a component implementing EventListener and which listens to >> document events (DocumentSaveEvent, DocumentUpdateEvent, >> DocumentDeleteEvent) >> 3. This component gets the XDOM of the affected document and looks at >> each [[link]] and each (%parameter block%) to see what metadata it can >> extract, and stores it (update, delete) into the semantic database >> >> Normally this should already work without any other changes to the >> platform, using the syntax you just provided. The problem is that these >> properties will end up in the generated HTML, so they create invalid >> markup (unknown attributes), but also invalid links, since >> [[Category:City]] will try to link to Category:Main.City, that is a >> "City" document in the "Main" space of the "Category" virtual wiki. So, >> you can also do: >> >> 4. Extend the XHTML Renderer to ignore the property attribute >> 5a. You can either override DocumentXHTMLLinkTypeRenderer to ignore >> links apparently coming from the "Category" wiki, or >> 5b. Add a new link type and a custom renderer for it, which will make it >> easier and more generic to find semantic links >> >> I can't help more with technical details since I'm not that familiar >> with the rendering engine. >> >>> -Mark >>> >>> References >>> [1] http://code.google.com/p/wikimodel/ >>> [2] http://semantic-mediawiki.org/wiki/Introduction_to_SMW >>> >>> >>>> Regarding the Rendering system, it's documented here: >>>> http://code.xwiki.org/xwiki/bin/view/Modules/RenderingModule >> > ------------------------------------------------------------------------ > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Ricardo Rodríguez CTO eBioTIC. Life Sciences, Data Modeling and Information Management Systems _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

