Hi,<br><br> In some platforms (specially mobile world) there is no java. We could depend on java IF there were tools that we cannot have/use in other languages. Taking a quick look to the documentation you wrote i think there is nothing we cannot do in plain C.<br>
<br>My comments:<br><br><br><div class="gmail_quote">On Tue, Jul 21, 2009 at 6:06 PM, Antoni Mylka <span dir="ltr"><<a href="mailto:antoni.mylka@gmail.com">antoni.mylka@gmail.com</a>></span> wrote:<br><div> <br></div>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
1. RDFS2Tex - the doc generator. It has two "renderers": one that<br>
outputs LaTeX and one that ouputs HTML.<br>
<br>
Input:<br>
- a directory containing rdf files,<br>
- the namespace to document<br>
- a list of "local" namespaces (inside NIE, like NFO, NMO, NCO...)<br>
Output:<br>
- a html file with the documentation of classes and properties<br>
from the given namespace,<br>
- all references to entities from "local" namespaces are turned to<br>
links, external entities are not turned to links<br>
Algorithm:<br>
- take triples from all files into a single model<br>
- apply RDFS inference to get all sub/superclasses and<br>
sub/superproperties<br>
- iterate over all classes from the given namespace and generate<br>
output<br>
- iterate over all properties from the given namespace and generate<br>
output<br>
Rewriting<br>
- could probably be much clearer with a reasonable object model and<br>
a template engine, i.e. with ruby/redland and erb, or with<br>
java/velocity<br>
- if in java, it could be ported to sesame to drop the number of jars<br>
in the 'lib' folder from 18 to 3 (sesame and two slf4j jars)<br>
- but requires RDFS inference to work properly, otherwise you won't<br>
get those full lists of (sub|super)(classes|properties), AFAIK<br>
redland doesn't have this and using virtuoso seems like overkill<br>
Quality:<br>
- mediocre, it cries for a template engine, but it seems to work<br>
</blockquote><div><br>I did something similar to this in C + Redland [1]. It uses two turtle files (X.ontology, X.description) and the same algorithm. I stopped doing it waiting for this documentation discussion, so it is not complete (it generates proper links to classes/properties with "real URIs" [the uri of the resource points to a valid HTML with the documentation]).<br>
<br> You can use a proper data model to get the direct super/sub class/properties, and then you dont need "RDFS inference" anymore. The problem is that you cannot easily find "all superclasses of class X", but anyway this is only useful to get "all properties available for class X" and AFAICS this information is not available in the HTML documents.<br>
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2. RDFS2NRL - an ugly hack, seems obsolete now<br>
<br>
Quality<br>
- works, but is obsolete in the XESAM/OSCAF setup <br></blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
3,4,5. the converters are completely obsolete, should be deleted<br>
</blockquote><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
6. Another tool we developed in NEPOMUK is the nrlvalidator (which<br>
requires unionsail and infsail). There is some CLI interface, but it was<br>
meant to be accessed with a java API. They currently live within the<br>
aperture-tools package in the aperture sourceforge repository.<br>
</blockquote><div><br> I wrote something similar [2]. It is call data-validator, and i use it to validate my test-data generators against the ontology.<br><br> It is written in C + Redland, and at the moment it doesn't validate data errors, but it should be easy to fix that.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Rewriting:<br>
- very difficult, would require a rule-based inference engine,<br>
there is one in Jena, and infsail is a port from the Jena-one<br>
to sesame made by Gunnar Grimnes from DFKI. IMHO nearly impossible<br>
with redland, dunno about virtuoso, or CWM</blockquote><div><br> Maybe not all the ultra-fancy validations can be done with redland, but at least all the common mistakes generating data i have found while testing tracker, are<br>
detected with my pet-validator.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
- it's IMHO important because such a tool would be the only way<br>
to ensure we deliver on the backward-compatiblity promise</blockquote><div><br>I never used it for that. But it is a good use-case.<br><br>Regards,<br><br>Ivan<br></div></div><br>[1] <a href="http://git.gnome.org/cgit/tracker/tree/utils/services/ttl2html.c">http://git.gnome.org/cgit/tracker/tree/utils/services/ttl2html.c</a> <br>
[2] <a href="http://git.gnome.org/cgit/tracker/tree/utils/services/data-validator.c">http://git.gnome.org/cgit/tracker/tree/utils/services/data-validator.c</a><br>