[OTDev] RDF, APIs and ontologies

Christoph Helma helma at in-silico.de
Thu Nov 12 20:53:00 CET 2009


Excerpts from Nina Jeliazkova's message of Wed Nov 11 14:54:42 +0100 2009:
> Dear Christoph, All,
> 
> I would suggest to start with an example.  Before Friday meeting it will
> be good if we have specific idea how to represent features in RDF .  We
> can consider BO ontology for descriptors and preliminary ontology for
> carcinogenicity Olga Tcheremenskaia showed yesterday during the online
> meeting.
> 
> So far we have identified the following information is necessary to
> describe a feature
> 
> 1)Name
> 2)Units
> 3)Data type (numeric, string, etc.)
> 4)Where the feature originates from: - this can be an algorithm used to
> calculate,a model, measurement protocol, literature reference,or another
> data source.
> 
> RDF suggestions to represent this information are welcome. 

I would represent feature values in the dataset RDF as follows:

	@prefix compound: <http://webservices.in-silico.ch/compound/>
	@prefix feature: <http://opentox.org/ontologies/features/>

	compound:{compound_id} feature:{feature_id} {feature_value} .

Examples:

	# Carcinogenicity classification
	# if we are happy with the DSSTOX definition
	compound:InChI=1S/C6H5NO2/c8-7(9)6-4-2-1-3-5-6/h1-5H <http://www.epa.gov/ncct/dsstox/CentralFieldDef.html#ActivityOutcome_CPDBAS_MultiCellCall> true . # true and false are boolean literals in N3, you can also define datatypes explicitly (http://www.w3.org/TR/rdf-mt/#dtype_interp)

	# if we want to manage our own definitions
	compound:InChI=1S/C6H5NO2/c8-7(9)6-4-2-1-3-5-6/h1-5H feature:multi_cell_call true . 

	# Rat TD50
	compound:InChI=1S/C6H5NO2/c8-7(9)6-4-2-1-3-5-6/h1-5H feature:rat_td50_mmol 0.207 . # implies numeric values

	# BBRC structral feature from supervised graph mining
	compound:InChI=1S/C6H5NO2/c8-7(9)6-4-2-1-3-5-6/h1-5H feature:bbrc_representative  [ <#smarts> "NO"; <#p_value> 0.99;  <#effect> "activating"  ]. # a more complex feature with name/value pairs
	
	...

GET http://opentox.org/ontologies/features/{feature_id} should return the feature definitions in RDF like:

	@prefix feature: <http://opentox.org/ontologies/features/>

	feature:{feature_id} rdfs:label {feature_name} .
	feature:{feature_id} whatever:unit {feature_unit} . # I would have to find an ontology entry, maybe there is something in blueobelisc or chemaxon
	feature:{feature_id} whatever:source {uri_for_algorithm_or_model_or_protocol_or_reference} . # have to find a suitable ontology
	# if we need to specify algorithm/model/... parameters
	{uri_for_algorithm_or_model_or_protocol_or_reference} whatever:parameters {parameter_value} . # have to find a suitable ontology

Examples:

	feature:multi_cell_call rdfs:label "DSSTOX/CPDB Multi Cell Call" .
	# no unit - nothing to define here
	feature:multi_call_call  whatever:source <http://www.epa.gov/ncct/dsstox/StructureDataFiles/CPDBAS_DownloadFiles/CPDBAS_v5d_1547_20Nov2008.zip> . # source file
http://www.epa.gov/ncct/dsstox/CentralFieldDef.html#TD50_Rat_mmol
	feature:rat_td50_mmol whatever:unit "mmol/kg-bw/day" .
	feature:rat_td50_mmol whatever:source <http://www.epa.gov/ncct/dsstox/StructureDataFiles/CPDBAS_DownloadFiles/CPDBAS_v5d_1547_20Nov2008.zip> . # source file
	feature:bbrc_representative rdfs:label "Backbone refinement class representatives" 
	feature:bbrc_representative whatever:source <http://webservices.in-silico.ch/algorithms/fminer> .
	<http://webservices.in-silico.ch/algorithms/fminer> whatever:parameters [ <#dataset_uri> <http://webservices.in-silico.ch/dataset/3> ] .

POSTing the same RDF to http://opentox.org/ontologies/features/ should
create http://opentox.org/ontologies/features/{feature_id}. PUT and
DELETE would work in analogy.

Best regards,
Christoph



More information about the Development mailing list