Java owlapi提取物

时间:2017-10-02 20:47:52

标签: java rdf owl-api object-property

我有一个本体论

<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/BFO_0000050">
    <owl:inverseOf rdf:resource="http://purl.obolibrary.org/obo/BFO_0000051"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
    <oboInOwl:hasDbXref rdf:datatype="http://www.w3.org/2001/XMLSchema#string">BFO:0000050</oboInOwl:hasDbXref>
    <oboInOwl:hasOBONamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#string">external</oboInOwl:hasOBONamespace>
    <oboInOwl:id rdf:datatype="http://www.w3.org/2001/XMLSchema#string">part_of</oboInOwl:id>
    <oboInOwl:shorthand rdf:datatype="http://www.w3.org/2001/XMLSchema#string">part_of</oboInOwl:shorthand>
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">part of</rdfs:label>
</owl:ObjectProperty>

我试图提取所有的ObjectProperties,

for (OWLObjectProperty obp : ont.getObjectPropertiesInSignature()){
    System.out.println(obp.toString());
}

这将打印ObjectProperty的名称,例如http://purl.obolibrary.org/obo/BFO_0000050

我想知道如何获取rdfs:标签,例如

的一部分

1 个答案:

答案 0 :(得分:0)

OWL中的#include <sys/types.h> #include <sys/wait.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> // for reaching unix operations #include <time.h> int main(int argc, char *argv[]) { pid_t main = getpid(); int N = 30; int i; int fd[2*N]; pid_t* children = (pid_t*)malloc(sizeof(pid_t) * N); for (i = 0; i < N; i++) { pipe(&fd[2 * i]); pid_t child = fork(); if (child == 0) { pid_t me = getpid(); close(fd[2 * i]); write(fd[2 * i + 1], write_buffer, SIZE); printf("I'm a child and my pid is: %d\n", me); sleep(1); // exit(4); return me * 2; } else if (child < 0) { // printf("Could not create child\n"); } else { close(fd[2 * i + 1]); read(fd[2 * i], read_buffer, SIZE); children[i] = child; // printf("I have created a child and its pid %d\n", child); } } return 0; annotation。 要获取rdfs:label,您必须查询所需的objectProperty的注释。

要显示本体的所有注释,您可以执行以下操作:

label
在现代(超过一年)版本的owlapi(5)中不推荐使用

final OWLOntology ontology = manager.loadOntologyFromOntologyDocument(new File(my_file)); final List<OWLAnnotation> annotations = ontology.objectPropertiesInSignature()// .filter(objectProperty -> objectProperty.equals(the_object_property_I_want))// .flatMap(objectProperty -> ontology.annotationAssertionAxioms(objectProperty.getIRI()))// .map(OWLAnnotationAssertionAxiom::getAnnotation)// .collect(Collectors.toList()); for (final OWLAnnotation annotation : annotations) System.out.println(annotation.getProperty() + "\t" + annotation.getValue()); 。因此,请使用java-8getObjectPropertiesInSignature()stream进行考虑。 java-9几天前已发布,因此现在是学习objectPropertiesInSignature功能的好时机。

注意:注释几乎是免费的,但OWL2已经对其进行了更多标准化,因此注释中包含预定义语义&#39;。