SPARQLthon46/idorg-ontology

提供:TogoWiki

移動: 案内, 検索

Identifiers.org の URI は データベースRDF化ガイドライン で推奨しているため NBDC RDF portalTogoGenomeDDBJ RDF などで多用しているが、各データベースエントリの URI がどのデータベースに由来するかを記載する方法が現状では限られている。

例えば UniProt の URI http://identifiers.org/uniprot/P0AD86 が UniProt Knowledgebase の ID であることを示すのに、現状では

<http://identifiers.org/uniprot/P0AD86>   dcterms:source     <http://identifiers.org/miriam.collection/MIR:00000005> .
<http://purl.uniprot.org/uniprot/P0AD86>  dcterms:publisher  <http://identifiers.org/miriam.resource/MIR:00100134> .

のように MIRIAM レコードの URI を使う方法があるが、MIRIAM の ID は覚えにくいのと cool ではないので、できれば

<http://identifiers.org/uniprot/P0AD86>  sio:is-part-of  <http://identifiers.org/uniprot> .

などのように書きたい。この場合 http://identifiers.org/uniprot が UniProt データベースの URI であるということを記載したオントロジーがあると良い。

@prefix :     <http://rdf.identifiers.org/ontology> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix dct:  <http://purl.org/dc/terms/> .
@prefix sio:  <http://semanticscience.org/resource/> .
@prefix mirc: <http://identifiers.org/miriam.collection/MIR:> .
@prefix mirr: <http://identifiers.org/miriam.resource/MIR:> .
# @prefix dcat: <http://www.w3.org/ns/dcat#> .

<http://rdf.identifiers.org/ontology>
    rdf:type owl:Ontology ;
    dct:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
    owl:versionInfo "Created on 2016-07-25"^^xsd:string .

:DatabaseEntry
    rdf:type owl:Class ;
    owl:subClassOf  sio:SIO_000756 .    # sio:DatabaseEntry

:Database
    rdf:type owl:Class ;
    owl:subClassOf  sio:SIO_000089 .    # sio:Dataset

:entryOf
    rdfs:domain  :DatabaseEntry ;       # sio:DatabaseEntry
    rdfs:range   :Database ;            # sio:Database
    owl:subPropertyOf sio:SIO_000068 .  # sio:is-part-of (or sio:SIO_001278 is-data-item-in)

# <http://identifiers.org/miriam.collection/MIR:00000005>
# => <http://www.ebi.ac.uk/miriam/main/collections/MIR:00000005> rdf:type dcat:CatalogRecord
#  ( <http://www.ebi.ac.uk/miriam/main/collections/MIR:00000005.ttl> )
<http://identifiers.org/uniprot>
    rdf:type :Database ;
    # Recommended name
    rdfs:label "UniProt Knowledgebase"^^xsd:string ;
    # Description
    rdfs:comment "The UniProt Knowledgebase (UniProtKB) is a comprehensive resource for protein sequence and functional information with extensive cross-references to more than 120 external databases. Besides amino acid sequence and a description, it also provides taxonomic data and citation information." ;
    # [TODO] appropriate predicate?
    dct:source mirc:00000005 ;
    dct:publisher mirr:00100134 ;
    # [TODO] how to obtain those external equivalent URIs?
    rdfs:seeAlso <https://biosharing.org/biodbcore-000544> ;
    rdfs:seeAlso <http://integbio.jp/dbcatalog/en/record/nbdc00221> .

だいたいこんなものを作れば良さそう (TODO: entryOf が CamelCase の predicate になっているのがちょっと気に食わない)

実装: https://github.com/ktym/idorg-ontology

% curl http://www.ebi.ac.uk/miriam/main/export/xml/ > resources_all.xml
% gem install nokogiri
% ruby miriam-xml2owl.rb resources_all.xml > resources_all.owl