Вы не можете выполнять регулярное выражение непосредственно в своем ?prop, потому что оно, вероятно, содержит префикс, а вам это не нужно.
Сначала вам нужно удалить префикс (скажем, ваш префикс «:»)
bind(strafter(str(?class),str(:)) as ?propertyName)
Он создаст переменную с именем propertyName, содержащую только имя (без префикса)
Теперь, когда у вас есть это, вы можете выполнить регулярное выражение. Если вы хотите сохранить только свойства, начинающиеся с заглавной буквы, вы можете сделать:
FILTER regex(str(?propertyName),"^[A-Z]")
Примечание: если вы хотите проверить все правила camelCase, вы можете проверить это регулярное выражение
Не уверен, почему имя переменной
?prop
для классов, но вы всегда можете использовать регулярное выражение в URI с?cls a owl:Class . FILTER(regex(str(?cls, "YOUR REGEX HERE" )))
- шаблоны регулярных выражений для слов, начинающихся с верхнего регистра, тривиальны, поэтому я оставляю это на ваше усмотрение.