Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RDF-centric checks on https://raw.githubusercontent.com/obi-ontology/obi/rc-2018-08-27/obi.owl #961

Open
turbomam opened this issue Aug 30, 2018 · 0 comments
Assignees

Comments

@turbomam
Copy link
Contributor

Here are the latest OBI results from some tests I developed for TURBO.

Probably very little or none of this needs to be addressed before the imminent release. Or maybe some of these findings are actually OK?

Are there any undefined subjects?

Construct {
    ?s ?p ?o
}
where {
    ?s ?p ?o .
    minus {
        ?s a ?t
    }
    filter (isuri(?s))
    # my triplestore prepopulates some triples about RDF and RDFS
    filter(!strstarts(str(?s), "http://www.w3.org/1999/02/22-rdf-syntax-ns#"))
    filter(!strstarts(str(?s), "http://www.w3.org/2000/01/rdf-schema#"))
}

The subjects of the following triples aren't defined

They can't be searched in Protege, and in general don't seem to be used anywhere else in OBI.

<http://example.com/bfo-spec-label> <http://purl.obolibrary.org/obo/IAO_0000119> 
    "Person:Alan Ruttenberg" .

http://example.com/bfo-spec-label doesn't appear anywhere else

<http://purl.obolibrary.org/obo/BFO_0000134> <http://purl.obolibrary.org/obo/IAO_0000600>
    "To say that each spatiotemporal region s temporally_projects_onto some temporal region t is to say that t is the temporal extension of s. (axiom label in BFO2 Reference: [080-003])"@en,
    "To say that spatiotemporal region s spatially_projects_onto spatial region r at t is to say that r is the spatial extent of s at t. (axiom label in BFO2 Reference: [081-003])"@en .

The only additional appearances of http://purl.obolibrary.org/obo/BFO_0000134 are in axioms providing an axiom label for the elucidations above.

_:node10145 a owl:Axiom;
  obo:IAO_0010000 <http://purl.obolibrary.org/obo/bfo/axiom/080-003>;
  owl:annotatedProperty obo:IAO_0000600;
  owl:annotatedSource obo:BFO_0000134;
  owl:annotatedTarget "To say that each spatiotemporal region s temporally_projects_onto some temporal region t is to say that t is the temporal extension of s. (axiom label in BFO2 Reference: [080-003])"@en .

_:node10146 a owl:Axiom;
  obo:IAO_0010000 <http://purl.obolibrary.org/obo/bfo/axiom/081-003>;
  owl:annotatedProperty obo:IAO_0000600;
  owl:annotatedSource obo:BFO_0000134;
  owl:annotatedTarget "To say that spatiotemporal region s spatially_projects_onto spatial region r at t is to say that r is the spatial extent of s at t. (axiom label in BFO2 Reference: [081-003])"@en .

The ID range is asserted for two ontologies, even though they aren't mentioned in any other triples

<http://purl.obolibrary.org/obo/iao/d-acts.owl> <http://purl.obolibrary.org/obo/IAO_0000603>
    "IAO_0021000-IAO_0021999" .

<http://purl.obolibrary.org/obo/iao/pno.owl> <http://purl.obolibrary.org/obo/IAO_0000603>
    "IAO_0020000-IAO_0020999" . 

Are the objects of any object properties undefined?

construct {
    ?s ?p ?o
}
where {
    ?s ?p ?o .
    ?p a owl:ObjectProperty .
    minus {
        ?o a ?t
    }
}

No problems

Are there triples (using properties that aren't Object- or AnnotationProperties) with undefined URI objects?

PREFIX owl: <http://www.w3.org/2002/07/owl#>
construct {
    ?s ?p ?o
}
where {
    ?s ?p ?o .
    minus {
        ?o a ?t
    }
    minus {
        ?p a owl:ObjectProperty .
    }
    minus {
        ?p a owl:AnnotationProperty .
    }
    filter(isuri(?o))
    filter(!strstarts(str(?o), "http://www.w3.org/1999/02/22-rdf-syntax-ns#"))
    filter(!strstarts(str(?o), "http://www.w3.org/2000/01/rdf-schema#"))
    filter(!strstarts(str(?o), "http://www.w3.org/2002/07/owl#"))
}
<http://purl.obolibrary.org/obo/IAO_0000004> rdfs:range xsd:double .

xsd:double is undefined, although xsd:float is defined

<http://purl.obolibrary.org/obo/obi.owl> owl:versionIRI 
    <http://purl.obolibrary.org/obo/obi/2018-08-27/obi.owl> .

Is that versionIRI supposed to be resolvable?

_:node10145 owl:annotatedSource <http://purl.obolibrary.org/obo/BFO_0000134> .
_:node10146 owl:annotatedSource <http://purl.obolibrary.org/obo/BFO_0000134> .

see undefined subjects section above.

What about the URI-like objects of Annotation Properties?

Annotation Properties can take just about any object, so I did some filtering.

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
select distinct ?p ?l 
where {
    ?s ?p ?o .
    ?p a owl:AnnotationProperty .
    minus {
        ?o a ?t
    }
    filter (?p not in ( rdfs:isDefinedBy, rdfs:seeAlso, obo:IAO_0000233, obo:IAO_0000412, obo:IAO_0100001, obo:IAO_0010000))
    filter(isuri(?o))
    filter(!strstarts(str(?o), "http://www.w3.org/1999/02/22-rdf-syntax-ns#"))
    filter(!strstarts(str(?o), "http://www.w3.org/2000/01/rdf-schema#"))
    filter(!strstarts(str(?o), "http://www.w3.org/2002/07/owl#"))
    optional {
        ?p rdfs:label ?l
    }
}
p l notes
obo:IAO_0000233 "term tracker item"@en All resolvable
p l notes
obo:IAO_0000412 "imported from"@en All look like reasonable OBO foundry ontology URIs.  Not checked.
p l o notes
obo:IAO_0100001 "term replaced by"@en obo:CL_0000002 resolvable
obo:IAO_0100001 "term replaced by"@en obo:CL_0007014 resolvable
p l o notes
obo:IAO_0010000 "has axiom label"@en obo:bfo/axiom/138-001 Not resolvable… not meant to be? Only used to internally label axioms?
s p o notes
obo:IAO_0000650 foaf:page  https://en.wikipedia.org/wiki/Extract,_transform,_load I guess this isn't OBI's responsibility, but wouldn't rdfs:seeAlso or obo:IAO_0000119 'definition source' be better choices?

There's also an axiom with a broken seeAlso link,. See issue #960

@jamesaoverton jamesaoverton self-assigned this Sep 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants