Version 21 (modified by RutgerVos, 15 years ago) |
---|
Implementation Bootcamp
Implementation tips and tricks / FAQ
Here we collect useful tips and tricks so that we don't all have to reinvent the wheel. Please add any answers and/or questions!
I have to build a triplestore, what tool should I use under what circumstances?
Francois Belleau seems to prefer virtuoso, though he assures us he has no commercial interest in them :)
I have an analysis tool, how do I expose it as a semantic web resource?
I have to build an OWL model of my data - how do I go about doing this?
For understanding what you're supposed to do (and what you're getting into...), read
- The OWL 2 primer to learn about OWL,
- A Semantic Web Primer for Object-Oriented Software Developers if you know anything about OO modeling in software, as it will help avoid a lot of common pitfalls, and
- Semantic Web for the Working Ontologist if you want in-depth explanation with lots of examples.
Then use Protege to actually build the ontology.
When someone calls GET on my URLs, what should I return in order to be semantic webby?
You should probably use Content Negotation using the HTTP Accept: header. That way you can return HTML and RDF under the same URI. However, it's fine for the time being to just accept a ".rdf" suffix or an "&format=rdf" URL parameter.
At UniProt, we use content negotiation for our OWL documentation, but not (yet) for the actual data. Example:
> wget --header='Accept: application/rdf+xml' http://purl.uniprot.org/core/recommendedName [...] Saving to: `recommendedName.rdf > wget --header='Accept: text/html' http://purl.uniprot.org/core/recommendedName [...] Saving to: `recommendedName.html
What are the similarities and differences between the various shared names proposals?
Shared names proposals such as LSRN? UniProt??
What XSL processor to use, should you want to convert legacy xml to rdf?
@yokofakun just tweeted using xsltproc for this, but it doesn't seem to be happy about xsl 2.0 features, so @rvosa is using net.sf.saxon.Transform instead.
What to do with RDFa metadata?
RDFa embedded inside HTML or XML can be turned into proper RDF/XML triples using this xsl stylesheet: http://nexml-dev.nescent.org/nexml/xslt/RDFa2RDFXML.xsl
I have database in RMDB, how can I convert them directly to RDF?
Use protege plug-in? or porvide web service?
There is D2RQ which works okey but lacks a bit performance-wise.
How to access a triplestore in Perl/Ruby/Python/Java etc.?
In Python, you have RDFlib. And for Java Jena is your best option.
How do I namespace my terms?
It is best to do this such that they can actually be resolved (unlike XML), preferably to an OWL file, e.g. " http://example.org/terms.owl#"
How granular should my returned RDF be?
Which version of Protege should I use?
Why not the latest one? You get the current OWL 2.