Difference between revisions of "Data:Device"

From DAAP
Jump to navigation Jump to search
Line 16: Line 16:
 
</rdf>
 
</rdf>
  
== RDFS ==
+
== Definition ==
<rdf>
+
 
 +
The class Device contains 7 properties.
 +
<rdf constraint="shacl">
 
daap:Device
 
daap:Device
 
   a owl:Class ;
 
   a owl:Class ;
Line 23: Line 25:
 
   rdfs:label "Instrument"@fr ;
 
   rdfs:label "Instrument"@fr ;
 
   rdfs:subClassOf owl:Thing.
 
   rdfs:subClassOf owl:Thing.
</rdf>
 
  
== SHACL ==
+
 
=== Target ===
 
<rdf>
 
 
daap:Device  
 
daap:Device  
 
   a sh:Shape ;
 
   a sh:Shape ;
   sh:targetClass daap:Device .   # Applies to all devices
+
   sh:targetClass daap:Device ;   # Applies to all devices
</rdf>
+
  sh:property [
 
+
sh:path rdfs:label ;
=== Property ===
+
sh:datatype xsd:string ;
<rdf>
+
sh:minCount 2 ; #fr and en
daap:Device
+
sh:uniqueLang true ;
 +
  ] ;
 
   sh:property [
 
   sh:property [
 
       rdfs:label "Pilot process"@en ;
 
       rdfs:label "Pilot process"@en ;
Line 90: Line 90:
 
</rdf>
 
</rdf>
  
=== Contraint ===
+
=== Contraintes  ===
[[Category:Maintenance Shacl]]
+
 
 
<rdf>
 
<rdf>
 
daap:Device  
 
daap:Device  
Line 97: Line 97:
 
       sh:message "Check if the fields exist :  (label (en))"^^xsd:string ;
 
       sh:message "Check if the fields exist :  (label (en))"^^xsd:string ;
 
       sh:predicate daap:checkDevice ;
 
       sh:predicate daap:checkDevice ;
       sh:sparql """prefix daap: <http://daap.eu/wiki/>  
+
       sh:sparql """
 +
prefix daap: <http://daap.eu/wiki/>  
 
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
 
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
  
select ?this (?this AS ?subject) (?this AS ?object)
+
select $this ($this AS ?subject) ($this AS ?object)
 
where {
 
where {
?this rdf:type daap:Device .
+
$this rdf:type daap:Device .
 
         OPTIONAL {
 
         OPTIONAL {
               ?this rdfs:label ?label .
+
               $this rdfs:label ?label .
 
               FILTER langMatches( lang(?label), \"EN\" )  
 
               FILTER langMatches( lang(?label), \"EN\" )  
        }         
+
        }         
    FILTER ( ! bound(?label) )
+
      FILTER ( ! bound(?label) )
} """  
+
}  
 +
"""  
 
     ]  
 
     ]  
 
.
 
.
 +
 
</rdf>
 
</rdf>
 +
 +
[[Category:Maintenance Shacl]]

Revision as of 14:59, 5 November 2019

Prefix

PREFIX daapSch: <http://daap.eu/wiki/Schema:>
PREFIX daapProp: <http://daap.eu/wiki/Property:> 
PREFIX daap: <http://daap.eu/wiki/>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>

Definition

The class Device contains 7 properties.

daap:Device
  a owl:Class ;
  rdfs:label "Device"@en ;
  rdfs:label "Instrument"@fr ;
  rdfs:subClassOf owl:Thing.


daap:Device 
  a sh:Shape ;
  sh:targetClass daap:Device ;    # Applies to all devices
   sh:property [
	sh:path rdfs:label ;
	sh:datatype xsd:string ;
	sh:minCount 2 ; #fr and en
	sh:uniqueLang true ;
   ] ;
  sh:property [
      rdfs:label "Pilot process"@en ;
      rdfs:label "Responsable de l'appareil"@fr ;
      sh:minCount 1 ;
      sh:nodeKind sh:IRI ;
      sh:predicate daapProp:pilotProcess ;
      sh:valueClass daap:Individual ;
    ]; 
   sh:property [
      rdfs:label "check by"^^xsd:string ;
      sh:minCount 1 ;
      sh:nodeKind sh:IRI ;
      sh:predicate daapProp:checkBy ;
      sh:valueClass daap:Individual ;
    ] ;
  sh:property [
      rdfs:label "Wikidata item"^^xsd:string ;
      sh:nodeKind sh:IRI ;
      sh:predicate daapProp:item ;
      sh:valueClass <http://wikiba.se/ontology#Item> ;
    ] ;
  sh:property [
      rdfs:label "latitude"^^xsd:string ;
      sh:datatype xsd:float ;
      sh:maxCount 1 ;
      sh:minCount 1 ;
      sh:predicate geo:lat ;
    ] ;
  sh:property [
      rdfs:label "longitude"^^xsd:string ;
      sh:datatype xsd:float ;
      sh:maxCount 1 ;
      sh:minCount 1 ;
      sh:predicate geo:long ;
    ] ;
  sh:property [
      rdfs:label "organization-unit"^^xsd:string ;
      sh:maxCount 1 ;
      sh:minCount 1 ;
      sh:nodeKind sh:IRI ;
      sh:predicate vcard:organization-unit ;
      sh:valueClass vcard:Organization ;
    ] ;
  sh:property [
      rdfs:label "picture"^^xsd:string ;
      sh:maxCount 1 ;
      sh:minCount 1 ;
      sh:nodeKind sh:IRI ;
      sh:predicate <http://daap.eu/wiki/Property:picture> ;
      sh:valueClass rdfs:Resource ;
    ] 
.

Contraintes

daap:Device 
  sh:constraint [
      sh:message "Check if the fields exist :  (label (en))"^^xsd:string ;
      sh:predicate daap:checkDevice ;
      sh:sparql """
prefix daap: <http://daap.eu/wiki/> 
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

select $this ($this AS ?subject) ($this AS ?object)
where {
 	$this rdf:type daap:Device .
         OPTIONAL {
              $this rdfs:label ?label .
              FILTER langMatches( lang(?label), \"EN\" ) 
         }        
       FILTER ( ! bound(?label) )
} 
""" 
    ] 
.