#!/usr/bin/python3.10 # -*-coding:Utf-8 -* import os from rdflib import Graph, Namespace # Création de l'ontologie et des namespaces nécessaires graph = Graph() DATA_FOLDER_PATH = f'{os.path.dirname(os.path.abspath(__file__))}/test_data' ontology1_path = f"{DATA_FOLDER_PATH}/ontology_a.ttl" graph.parse(ontology1_path, format="ttl") OWL = Namespace("http://www.w3.org/2002/07/owl#") def extract_some_values_from_restrictions(g: Graph): axioms = [] for restriction, _, some_values_from in g.triples((None, OWL.someValuesFrom, None)): on_property = g.value(subject=restriction, predicate=OWL.onProperty) if on_property: axiom = (restriction, on_property, some_values_from) axioms.append(axiom) return axioms # Tester la fonction axioms = extract_some_values_from_restrictions(graph) n=0 for axiom in axioms: n += 1 print(f'[{n}]: {axiom}\n') # for s, p, o in graph: # print(s, p, o) def get_some_values_from_restrictions(self): axioms = [] for restriction, _, some_values_from in self.graph.triples((None, OWL.someValuesFrom, None)): on_property = self.graph.value(subject=restriction, predicate=OWL.onProperty) if on_property: axiom = SomeValuesFromRestrictionAxiom(restriction, on_property, some_values_from) axioms.append(axiom) return axioms