Version 20 (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

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.

How do I create a SADI service?