У меня очень большой Dask
массив данных (который не помещается в память, если я использую pandas
) с OWL
тройками, который выглядит примерно так:
class1 statement class2
Person rdfs:subClassOf owl:Thing
Woman rdfs:subClassOf Person
Man rdfs:subClassOf Person
Person owl:disjointWith Building
Я бы хотел добавить столбец level
к этому фрейму данных для всех строк, имеющих rdfs:subClassOf
в столбце statement
. Чтобы получить это:
class1 statement class2 level
Person rdfs:subClassOf owl:Thing 1
Woman rdfs:subClassOf Person 2
Man rdfs:subClassOf Person 2
Подобно тому, как Oracle SQL, соединяемый по запросу ниже, добавит уровни и сообщит о возможных бесконечных циклах (дополнительный бонус, если возможно):
select level ind,
person_id,
supervisor_id,
connect_by_iscycle
from people
where 1 = 1
start with person_id = 1
connect by nocycle prior person_id = supervisor_id
Возможно ли это с помощью Dask или Pandas (если нужно)?