извлечение имени класса определенного подкласса в owl
Яrdflib
новичок, у меня есть онтология с классами и подклассами, и мне нужно найти конкретное слово в подклассе и, если оно найдено, вернуть его имя класса.
У меня есть следующий код:
import rdflib
from rdflib import plugin
from rdflib.graph import Graph
g = Graph()
g.parse("test.owl")
from rdflib.namespace import Namespace
plugin.register(
'sparql', rdflib.query.Processor,
'rdfextras.sparql.processor', 'Processor')
plugin.register(
'sparql', rdflib.query.Result,
'rdfextras.sparql.query', 'SPARQLQueryResult')
qres = g.query("""
PREFIX rdf:
PREFIX owl:
PREFIX xsd:
PREFIX rdfs:
SELECT ?subject ?object
WHERE { ?subject rdfs:subClassOf ?object }
""")
# n is asubclass name and its class name is good-behaviour which i want to be the result
n="pity"
for (subj,pred,obj) in qres:
if n in subj:
print obj
else:
print "not found"
Когда яprint
результатqres
он возвращает полный URL, и мне нужно только имя подкласса и класса.
Может кто-нибудь помочь с этим.