All Downloads are FREE. Search and download functionalities are using the official Maven repository.

function.datashape2.text.spec.txt Maven / Gradle / Ivy


# input syntax: (name arg1 .. argn)
# rewritten as explicit argList before processing:
# (name (arg1 .. argn))

(sh:property 
(sh:path sh:knows) 
(sh:qualifiedValueShape 
    (sh:class foaf:Person)
    (sh:qualifiedMinCount 1)
    (sh:qualifiedMaxCount 1)
    (sh:qualifiedValueShapesDisjoint true)
)
)


function sh:testDefine() {
    let (shape = @(sh:shape us:test
        (sh:target (sh:targetClasss foaf:Person))
        (sh:property (sh:path sh:foaf:knows) (sh:class foaf:Person))
    )) {
        shape
    }
}


SHAPE ::=

@(sh:shape ID

(sh:target (TARGET TERM+)+ )?

(sh:header
    (sh:closed true) ?
    (sh:ignoreProperties URI+) ?
    (sh:desactivate true) ?
)

(PROPERTY_SHAPE | NODE_SHAPE) +

)
    

PROPERTY_SHAPE ::=
(sh:property 
    (sh:path PATH)
    (NODE_SHAPE|PROPERTY_SHAPE|PROPERTY_CST)+
)

NODE_SHAPE ::= BOOLEAN|CST

BOOLEAN ::= (BOOL_OPER (PROPERTY_SHAPE | NODE_SHAPE)+)

CST ::= (ATOM_OPER value+)  

PROPERTY_CST ::= (PROP_OPER  value+)  





TARGET ::= sh:targetClass sh:targetNode sh:targetObjectsOf sh:targetSubjectsOf


BOOL_OPER ::= sh:and sh:or sh:not sh:xone

ATOM_OPER ::=
sh:minLength sh:maxLength sh:datatype sh:minInclusive sh:minExclusive       
            sh:maxInclusive sh:maxExclusive sh:nodeKind sh:in sh:languageIn sh:node 
            sh:class  sh:pattern 
            sh:hasValue
            sh:type sh:patternIn
            

PROP_OPER ::=
sh:uniqueLang sh:minCount sh:maxCount sh:equals sh:disjoint sh:less sh:lessthan sh:qualifiedValueShape

#(sh:qualifiedValueShape shape min max distinct)


PATH ::=
URI 
(PATH_OPER PATH+)

PATH_OPER ::=
sh:sequencePath sh:alternativePath ...




© 2015 - 2025 Weber Informatics LLC | Privacy Policy