Difference between revisions of "Data:Device"

From DAAP
Jump to navigation Jump to search
Line 107: Line 107:
 
               $this rdfs:label ?label .
 
               $this rdfs:label ?label .
 
               FILTER langMatches( lang(?label), \"EN\" )  
 
               FILTER langMatches( lang(?label), \"EN\" )  
 +
        }       
 +
      FILTER ( ! bound(?label) )
 +
}
 +
"""
 +
    ] ;
 +
  sh:constraint [
 +
      sh:message "Check if the fields exist :  (label (fr))"^^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), \"FR\" )
 
         }         
 
         }         
 
       FILTER ( ! bound(?label) )
 
       FILTER ( ! bound(?label) )

Revision as of 15:07, 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) )
} 
""" 
    ] ;
  sh:constraint [
      sh:message "Check if the fields exist :  (label (fr))"^^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), \"FR\" ) 
         }        
       FILTER ( ! bound(?label) )
} 
""" 
    ] 
.