コード例 #1
0
ファイル: schema_utils.py プロジェクト: Teester/pyshexy
def predicates_in_tripleexpr(expression: ShExJ.tripleExpr,
                             cntxt: Context) -> Set[IRIREF]:
    predicates = set()

    def triple_expr_visitor(predicates: Set[IRIREF], expr: ShExJ.tripleExpr,
                            cntxt_: Context) -> None:
        if isinstance(expr, ShExJ.TripleConstraint):
            predicates.add(expr.predicate)

    cntxt.visit_triple_expressions(expression, triple_expr_visitor, predicates)
    return predicates
コード例 #2
0
ファイル: schema_utils.py プロジェクト: Teester/pyshexy
def triple_constraints_in_expression(
        expression: ShExJ.shapeExpr,
        cntxt: Context) -> List[ShExJ.TripleConstraint]:
    tes = []

    def triple_expr_visitor(tes: List[ShExJ.TripleConstraint],
                            expr: ShExJ.TripleConstraint, _: Context) -> None:
        if isinstance(expr, ShExJ.TripleConstraint):
            tes.append(expr)

    cntxt.visit_triple_expressions(expression, triple_expr_visitor, tes)
    return tes
コード例 #3
0
ファイル: schema_utils.py プロジェクト: Teester/pyshexy
 def triple_expr_finder(predicates: Dict[IRIREF, PredDirection],
                        expr: ShExJ.shapeExpr, cntxt_: Context) -> None:
     if isinstance(expr, ShExJ.Shape) and expr.expression is not None:
         cntxt_.visit_triple_expressions(expr.expression, predicate_finder,
                                         predicates)
コード例 #4
0
def triple_expr_finder(predicates: List[URIRef], expr: ShExJ.shapeExpr,
                       cntxt: Context) -> None:
    if isinstance(expr, ShExJ.Shape) and expr.expression is not None:
        cntxt.visit_triple_expressions(expr.expression, predicate_finder,
                                       predicates)