SPARQLthon46/idorg-ontology
提供:TogoWiki
Identifiers.org の URI は データベースRDF化ガイドライン で推奨しているため NBDC RDF portal や TogoGenome、DDBJ 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

