Come è possibile specificare l'intervallo di una proprietà tipo di dati da XSD: corde le cui forme letterale abbinare [A-Z]? Le restrizioni OWL non fanno il trucco per me, almeno a prima vista. C'è un modo per farlo con le espressioni regolari e se sì, dove?limitare xsd: string [A-Z] per rdfs: gamma
risposta
la seguente espressione nella sintassi Manchester dovrebbe fare il trucco:
string[pattern "A-Z"]
si può mettere direttamente come dati variano in Protege. Non sono sicuro che i ragionatori stiano implementando il costrutto, non l'ho mai usato prima.
Maggiori informazioni su di esso: http://www.w3.org/TR/owl2-manchester-syntax/#facet
suppongo vuoi dire "maiuscola singola" che è string[pattern "[A-Z]"]
.
Se si utilizza Protege, inserirlo nella scheda "Espressione intervallo dati".
eremita 1.3.7 può controllare questo e fornire spiegazioni circa i valori delle proprietà incoerenti.
grazie, proverò con questo – chile
Altre risposte hanno spiegato che questo può essere fatto usando le sfaccettature XSD per restringere la gamma di stringhe della proprietà a quelle corrispondenti al modello [A-Z]
, ma nessuna mostra l'RDF risultante. Ho creato una semplice ontologia in Protégé e definita una proprietà di dati hasLatinInitial
. Come altre risposte descritte, l'intervallo è stato specificato come string[pattern "[A-Z]"]
. Poi ho creato un individuo JohnDoe
e aggiunto le affermazioni di proprietà dati che
JohnDoe hasLatinInitial "J" .
JohnDoe hasLatinInitial "D" .
ed eremita 1.3.7 anzi corse e ha riportato alcuna incoerenza. Ho poi aggiunto l'affermazione
JohnDoe hasLatinInitial "3" .
ed eremita 1.3.7 segnalato un'incongruenza:
Ecco cosa l'ontologia risultante assomiglia in N3 e in RDF/XML:
@prefix : <http://www.example.com/example#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix example: <http://www.example.com/example#> .
<http://www.example.com/example>
a owl:Ontology .
example:hasLatinInitial
a owl:DatatypeProperty ;
rdfs:range
[ a rdfs:Datatype ;
owl:onDatatype xsd:string ;
owl:withRestrictions
([ xsd:pattern "[A-Z]"
])
] .
example:JohnDoe
a owl:NamedIndividual ;
example:hasLatinInitial
"3" , "J" , "D"
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:example="http://www.example.com/example#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.example.com/example"/>
<owl:DatatypeProperty rdf:about="http://www.example.com/example#hasLatinInitial">
<rdfs:range>
<rdfs:Datatype>
<owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<owl:withRestrictions rdf:parseType="Collection">
<rdf:Description>
<xsd:pattern>[A-Z]</xsd:pattern>
</rdf:Description>
</owl:withRestrictions>
</rdfs:Datatype>
</rdfs:range>
</owl:DatatypeProperty>
<owl:NamedIndividual rdf:about="http://www.example.com/example#JohnDoe">
<example:hasLatinInitial>3</example:hasLatinInitial>
<example:hasLatinInitial>D</example:hasLatinInitial>
<example:hasLatinInitial>J</example:hasLatinInitial>
</owl:NamedIndividual>
</rdf:RDF>
questo è molto utile, specialmente la parte N3, dal momento che non uso Protegé – chile
@chile Se fosse utile, potresti prendere in considerazione [accettandolo] (http: // meta. stackexchange.com/q/5234/225437) per far sapere agli altri utenti che ha funzionato per te, per ridurre il numero di domande senza risposta e per dare a te e me alcuni punti reputazione. –
@JT bene, non ho dovuto usare questa restrizione dopo tutto, quindi non l'ho implementato e non potrei dire per certo quale sia la risposta corretta. Ad ogni modo, la tua soluzione sembra tranquillamente plausibile per me. – chile
D tu fai progressi con questo? –