我有一个本体论
<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:标签,例如
的一部分答案 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-8的getObjectPropertiesInSignature()
版stream
进行考虑。 java-9几天前已发布,因此现在是学习objectPropertiesInSignature
功能的好时机。
注意:注释几乎是免费的,但OWL2已经对其进行了更多标准化,因此注释中包含预定义语义&#39;。