2013-05-24 9 views
6

Jak określić zakres właściwości typu danych na xsd: ciągi znaków, których formuła literowa jest zgodna z [A-Z]? Ograniczenia OWL nie robią tego dla mnie, przynajmniej na pierwszy rzut oka. Czy można to zrobić za pomocą wyrażeń regularnych, a jeśli tak, to gdzie?ograniczyć xsd: ciąg do [A-Z] dla rdfs: zakres

+0

D id Czy robisz z tym postęp? –

Odpowiedz

0

Następujące wyrażenie w składni Manchester powinno załatwić sprawę:

string[pattern "A-Z"]

Można umieścić go prosto jak zakres danych w Protege. Nie jestem pewien, jakie konstruktory implementują konstrukcję, nigdy wcześniej jej nie używałam.

Więcej informacji na jej temat: http://www.w3.org/TR/owl2-manchester-syntax/#facet

4

Przypuszczam znaczy „literą”, który jest string[pattern "[A-Z]"].

Jeśli używasz protokołu Protege, wprowadź go w zakładce "Zakres danych".

HermiT 1.3.7 może to sprawdzić i podać wyjaśnienia dotyczące niespójnych wartości właściwości.

+0

dziękuję, spróbuję tego – chile

1

Inne odpowiedzi wyjaśniły, że można to zrobić za pomocą aspektów XSD, aby ograniczyć zakres ciągów właściwości do tych pasujących do wzorca [A-Z], ale żaden nie pokazał wynikowego RDF. Stworzyłem bardzo prostą ontologię w Protégé i zdefiniowałem właściwość danych hasLatinInitial. Jak inne opisane odpowiedzi, zakres został określony jako string[pattern "[A-Z]"]. Potem stworzył indywidualny JohnDoe i dodał twierdzenia własności danych, które

JohnDoe hasLatinInitial "J" . 
JohnDoe hasLatinInitial "D" . 

i pustelnik 1.3.7 rzeczywiście prowadził i nie zgłoszone niespójność. I dodaje twierdzenie

JohnDoe hasLatinInitial "3" . 

i pustelnik 1.3.7 podano niespójność:

enter image description here

oto co powstały ontologia wygląda w N3 oraz w 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> 

+0

jest to bardzo pomocne, szczególnie część N3, ponieważ nie używam Protegé – chile

+0

@chile Jeśli było to pomocne, możesz rozważyć [zaakceptowanie] (http: // meta. stackexchange.com/q/5234/225437), aby inni użytkownicy wiedzieli, że to zadziałało dla Ciebie, aby zmniejszyć liczbę pytań bez odpowiedzi oraz aby dać ci i Tobie kilka punktów reputacji. –

+0

@JT dobrze, nie musiałem używać tego ograniczenia, więc nie wdrożyłem go i nie mogłem powiedzieć na pewno, która jest poprawna odpowiedź. W każdym razie twoje rozwiązanie wydaje mi się ciche. – chile