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

Reply via email to