syntax in shacl error

25 views
Skip to first unread message

Bohms, H.M. (Michel)

unread,
Apr 16, 2020, 12:18:36 PM4/16/20
to topbrai...@googlegroups.com

Keeps giving errors….

 

Guess i am confused with “or”

 

Thx for advice, Michel

 

 

# baseURI: https://w3id.org/def/smls-shacl

# imports: http://qudt.org/schema/qudt

# imports: http://qudt.org/vocab/quantitykind

# imports: http://qudt.org/vocab/unit

# imports: http://www.w3.org/2004/02/skos/core

# imports: http://datashapes.org/dash

# prefix: smls

 

@prefix smls: <https://w3id.org/def/smls-shacl#> .

@prefix dash: <http://datashapes.org/dash#> .

@prefix sh: <http://www.w3.org/ns/shacl#> .

@prefix owl: <http://www.w3.org/2002/07/owl#> .

@prefix quantitykind: <http://qudt.org/vocab/quantitykind/> .

@prefix qudt: <http://qudt.org/schema/qudt/> .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

@prefix unit: <http://qudt.org/vocab/unit/> .

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

 

<https://w3id.org/def/smls-shacl>

  a owl:Ontology ;

  owl:imports <http://qudt.org/schema/qudt> ;

  owl:imports <http://qudt.org/vocab/quantitykind> ;

  owl:imports <http://qudt.org/vocab/unit> ;

  owl:imports <http://www.w3.org/2004/02/skos/core> ;

  owl:imports <http://datashapes.org/dash> ;

.

smls:Activity

  a rdfs:Class ;

  skos:definition "An activity is something possibly or actually happens in space and time" ;

  skos:example "Fluid pressure measurement, driving a car are examples of an <activity> " ;

  skos:prefLabel "activiteit"@nl ;

  skos:prefLabel "activity"@en ;

  skos:scopeNote "Process, function, human activity, machine activity, task, procedure, project are subclasses of <Activity>." ;

.

smls:ActivityShape

  a sh:NodeShape ;

  sh:targetClass smls:Activity ;

  sh:property [

    sh:path smls:hasPart ;

    sh:class smls:Activity ;

    ] ;

  sh:property [

    sh:path smls:hasBoundary ;

    sh:class smls:SpatialRegion ;

    ] ;

  sh:property [

    sh:path smls:hasInterior ;

    sh:class smls:SpatialRegion ;

    ] ;

  sh:property [

    sh:path smls:hasPeriod ;

    sh:class smls:TemporalRegion ;

    ] ;

  sh:property [

    sh:path smls:hasState ;

    sh:class smls:State ;

    ] ;

  sh:property [

    sh:path smls:transforms ;

    sh:class smls:PhysicalObject ;

    ] ;

  sh:property [

    sh:path smls:triggers ;

    sh:class smls:Event ;

    ] ;

  sh:property [

    sh:path ( rdf:type [ sh:zeroOrMorePath

                         rdfs:subClassOf ; ] ) ;

    sh:hasValue smls:Activity ;

    sh:not [ sh:or ( [ sh:hasValue smls:PhysicalObject ; ]

                     [ sh:hasValue smls:InformationObject ; ]

                     [ sh:hasValue smls:State ; ]

                     [ sh:hasValue smls:Event ; ]

                     [ sh:hasValue smls:SpatialRegion ; ]

                     [ sh:hasValue smls:TemporalRegion ; ]

                    ) ;

            ] ;

.

smls:AddressSystem

  a rdfs:Class ;

  rdfs:subClassOf smls:SpatialReferenceSystem ;

  skos:prefLabel "address system"@en ;

  skos:prefLabel "adressysteem"@nl ;

.

smls:CalendarSystem

  a rdfs:Class ;

  rdfs:subClassOf smls:TemporalReferenceSystem ;

  skos:prefLabel "calendar system"@en ;

  skos:prefLabel "kalendersysteem"@nl ;

.

smls:CoordinateReferenceSystem

  a rdfs:Class ;

  rdfs:subClassOf smls:SpatialReferenceSystem ;

  skos:prefLabel "coordinaatreferentiesysteem"@nl ;

  skos:prefLabel "coordinate reference system"@en ;

.

smls:EnumerationType

  a rdfs:Class ;

  skos:definition "The superclass of all user-defined enumeration classes where the allowed enumeration items are individuals" ;

  skos:example "LoadLevelType being Low, Medium or High" ;

  skos:prefLabel "enumeratietype"@nl ;

  skos:prefLabel "enumeration type"@en ;

.

smls:Event

  a rdfs:Class ;

  skos:definition "A thing that happens or takes place and marks the beginning or ending of a state" ;

  skos:example "The connection of power to pump P_101, the take-off of a aeroplane are examples of an <Event>. " ;

  skos:prefLabel "event"@en ;

  skos:prefLabel "gebeurtenis"@nl ;

  skos:scopeNote "Transition, cause, effect, risk, milestone, issue, accident, point in time are subclasses of <Event>." ;

.

smls:EventShape

  a rdfs:Node ;

  sh:targetClass smls:event ;

  sh:property [

    sh:path smls:begins ;

    sh:class smls:Activity ;

    ] ;

  sh:property [

    sh:path smls:ends ;

    sh:class smls:Activity ;

    ] ;

.

smls:IndexKnownSpatialLocations

  a rdfs:Class ;

  rdfs:subClassOf smls:SpatialReferenceSystem ;

  skos:prefLabel "index bekende ruimtelijke plaatsen"@nl ;

  skos:prefLabel "index known spatial locations"@en ;

.

smls:InformationObject

  a rdfs:Class ;

  skos:definition "Thing that is a whole of information on itself and has an own identity" ;

  skos:example "a file within a computer system, the PDF file with URI http://material-certificate/M-101-1234.pdf are examples of <InformationObject> " ;

  skos:prefLabel "informatieobject"@nl ;

  skos:prefLabel "information object"@en ;

  skos:scopeNote "Requirement, document, statement, E-mail, code, identifier are subclasses of <InformationObject> ." ;

.

smls:InformationObjectShape

  a sh:NodeShape ;

  sh:targetClass smls:InformationObject ;

  sh:property [

    sh:path smls:hasPart ;

    sh:class smls:InformationObject ;

    ] ;

  sh:property [

    sh:path smls:describes ;

    sh:or ( [ sh:class smls:PhysicalObject ; ]

            [ sh:class smls:Activity ; ]

            [ sh:class smls:Event ; ]

            [ sh:class smls:State ; ]

            [ sh:class smls:InformationObject ; ]

           ) ;

    ] ;

.

smls:LinearReferenceSystem

  a rdfs:Class ;

  rdfs:subClassOf smls:SpatialReferenceSystem ;

  skos:prefLabel "lineair referentiesysteem"@nl ;

  skos:prefLabel "linear reference system"@en ;

.

smls:PhysicalObject

  a rdfs:Class ;

  skos:definition "Is something that possibly or actually exists in space and time, perceivable through the senses" ;

  skos:example "Pump P_101, a single living organism are examples of a <PhysicalObject>" ;

  skos:prefLabel "fysiek object"@nl ;

  skos:prefLabel "physical object"@en ;

  skos:scopeNote "Artefact, matter, person, organisation, stream, connection are subclasses of <PhysicalObject>." ;

.

smls:PhysicalObjectShape

  a sh:NodeShape ;

  sh:targetClass smls:PhysicalObject ;

  sh:property [

    sh:path smls:hasPart ;

    sh:class smls:PhysicalObject ;

    ] ;

  sh:property [

    sh:path smls:hasBoundary ;

    sh:class smls:SpatialRegion ;

    ] ;

  sh:property [

    sh:path smls:hasInterior ;

    sh:class smls:SpatialRegion ;

    ] ;

  sh:property [

    sh:path smls:hasPeriod ;

    sh:class smls:TemporalRegion ;

    ] ;

  sh:property [

    sh:path smls:hasState ;

    sh:class smls:State ;

    ] ;

  sh:property [

   sh:path smls:performs ;

    sh:class smls:Activity ;

    ] ;

  sh:property [

    sh:path smls:triggers ;

    sh:class smls:Event ;

    ] ;

.

smls:QuantityValue

  rdf:type rdfs:Class ;

  skos:prefLabel "kwantiteitwaarde"@nl ;

  skos:prefLabel "quantity value"@en ;

.

smls:QuantityValueShape

  a sh:NodeShape ;

  sh:targetClass smls:QuantityValue ;

  sh:property [

    sh:path rdf:value ;

    sh:datatype xsd:decimal ;

    sh:minCount 1 ;

    sh:maxCount 1 ;

    ] ;

.

smls:SpatialLocation

  a rdfs:Class ;

  skos:prefLabel "ruimtelocatie"@nl ;

  skos:prefLabel "spatial location"@en ;

.

smls:SpatialLocationShape

  a sh:NodeShape ;

  sh:targetClass smls:SpatialLocation ;

  sh:Property [

    sh:path smls:hasSpatialReference ;

    sh:class smls:SpatialReference ;

    ] ;

  sh:Property [

    sh:path smls:hasSpatialReferenceSystem ;

    sh:class smls:SpatialReferenceSystem ;

    ] ;

.

smls:SpatialReference

  a rdfs:Class ;

  skos:prefLabel "ruimtereferentie"@nl ;

  skos:prefLabel "spatial reference"@en ;

.

smls:SpatialReferenceSystem

  a rdfs:Class ;

  skos:prefLabel "ruimtereferentiesysteem"@nl ;

  skos:prefLabel "spatial reference system"@en ;

.

smls:SpatialRegion

  a rdfs:Class ;

  skos:definition "Demarcated space" ;

  skos:example "an IFC BREP or GeoSPARQL geometry representing a physical space, as special case of a physical object, such as an office space, a construction area for a building, a maritime traffic zone within the Channel, a hazard zone within a plant or the loading gauge of a train are examples of a <SpatialRegion>" ;

  skos:prefLabel "ruimtelijk gebied"@nl ;

  skos:prefLabel "spatial region"@en ;

.

smls:SpatialRegionShape

  a sh:NodeShape ;

  sh:targetClass smls:SpatialRegion ;

  sh:Property [

    sh:path smls:hasSpatialLocation ;

    sh:class smls:SpatialLocation ;

    ] ;

.

smls:State

  a rdfs:Class ;

  skos:definition "A particular condition that something is in during a specific period in time" ;

  skos:example "well-functioning of a car, the condition of an elevator of being un-safe are examples of a <State>" ;

  skos:prefLabel "state"@en ;

  skos:prefLabel "toestand"@nl ;

  skos:scopeNote "Condition, failure state, objective are subclasses of <State>." ;

.

smls:TemporalCoordinateReferenceSystem

  a rdfs:Class ;

  rdfs:subClassOf smls:TemporalReferenceSystem ;

  skos:prefLabel "temporal coordinate reference system"@en ;

  skos:prefLabel "tijdcoordinaatreferentiesysteem"@nl ;

.

smls:TemporalLocation

  a rdfs:Class ;

  skos:prefLabel "temporal location"@en ;

  skos:prefLabel "tijdlocatie"@nl ;

.

smls:TemporalLocationShape

  a sh:NodeShape ;

  sh:targetClass smls:TemporalLocation ;

  sh:Property [

    sh:path smls:hasTemporalReference ;

    sh:class smls:TemporalReference ;

    ] ;

  sh:Property [

    sh:path smls:hasTemporallReferenceSystem ;

    sh:class smls:TemporalReferenceSystem ;

    ] ;

.

smls:TemporalReference

  a rdfs:Class ;

  skos:prefLabel "temporal reference"@en ;

  skos:prefLabel "tijdreferentie"@nl ;

.

smls:TemporalReferenceSystem

  a rdfs:Class ;

  skos:prefLabel "temporal reference system"@en ;

  skos:prefLabel "tijdreferentiesysteem"@nl ;

.

smls:TemporalRegion

  a rdfs:Class ;

  skos:definition "A length or portion of time" ;

  skos:example "week 12 in 2019, design stage of the Schiphol tunnel are examples of a <TemporalRegion>" ;

  skos:prefLabel "temporal region"@en ;

  skos:prefLabel "temporeel gebied"@nl ;

  skos:scopeNote "Week, day, life cycle stage are subclasses of <TemporalRegion>." ;

.

smls:TemporalRegionShape

  a sh:NodeShape ;

  sh:targetClass smls:TemporalRegion ;

  sh:Property [

    sh:path smls:hasTemporalLocation ;

    sh:class smls:TemporalLocation ;

    ] ;

.

smls:abbreviation

  a rdf:Property ;

  rdfs:subPropertyOf skos:altLabel ;

  skos:prefLabel "abbreviation"@en ;

  skos:prefLabel "afkorting"@nl ;

.

smls:abbreviationShape

  a sh:NodeShape ;

  sh:targetSubjectsOf smls:abbreviation ;

  sh:path smls:abbreviation ;

  sh:datatype xsd:string ;

.

smls:begins

  a rdf:Property ;

  skos:prefLabel "begins"@en ;

  skos:prefLabel "begint"@nl ;

  skos:definition "Deze relatie geldt tussen een Gebeurtenis en een Toestand."@nl ;

  skos:definition "This relationship applies between an Event and a State."@en ;

  skos:example "De blikseminslag (gebeurtenis) is het begin van de bosbrand (toestand)."@nl ;

  skos:example "The lightning strike (event) is the start of the forest fire (state)."@en ;

.

smls:describes

  a rdf:Property ;

  skos:prefLabel "beschrijft"@nl ;

  skos:prefLabel "describes"@en ;

  skos:definition "Deze relatie geldt tussen een Informatie Object en een Fysiek Object, een Activiteit, een Gebeurtenis, een Toestand, een Tijdperiode, een Ruimtelijk Gebied of een ander Informatie Object."@nl ;

  skos:definition "This relationship applies between an Information Object and a Physical Object, an Activity, an Event, a State, a Time Period, a Spatial Region or another Information Object."@en ;

  skos:example "Neem de Ketelbrug. Daar is in de loop der tijden een waar dossier ontstaan van tekeningen, specificaties, rapporten, nota's, in analoge of in digitale vorm. Elk van deze documenten beschrijft de Ketelbrug en kan worden gezien als een instantie van een Informatie Object die de Ketelbrug beschrijft."@nl ;

  skos:example "Take the Ketel bridge. Over time, a dossier has been created of drawings, specifications, reports, invoices, in analogue or in digital form. Each of these documents describes the Ketelbrug and can be seen as an instance of an Information Object that describes the Ketelbrug. "@en ;

.

smls:ends

  a rdf:Property ;

  skos:prefLabel "beeindigt"@nl ;

  skos:prefLabel "ends"@en ;

  skos:definition "Deze relatie geldt tussen een Gebeurtenis en een Toestand."@nl ;

  skos:definition "This relationship applies between an Event and a State."@en ;

  skos:example "Het onweer (gebeurtenis) beeindigde het mooie weer (toestand)."@nl ;

  skos:example "The thunderstorm (event) ended the nice weather (state)."@en ;

.

smls:hasBoundary

  a rdf:Property ;

  skos:prefLabel "has boundary"@en ;

  skos:prefLabel "heeft begrenzing"@nl ;

  skos:definition "Deze relatie geldt tussen een Fysiek Object en een Ruimtelijk Gebied."@nl ;

  skos:definition "This relationship applies between a Physical Object and a Spatial Region."@en ;

  skos:example "Een perceel wordt begrensd door een 1D GML polyline."@nl ;

  skos:example "A parcel is bounded by a 1D GML polyline."@en ;

.

smls:hasInterior

  a rdf:Property ;

  skos:prefLabel "has interior"@en ;

  skos:prefLabel "heeft inwendige"@nl ;

  skos:definition "Deze relatie geldt tussen een Fysiek Object en een (topologisch) Ruimtelijk Gebied, tussen een Activiteit en een Ruimtelijk Gebied en tussen een Toestand en een Ruimtelijk Gebied."@nl ;

  skos:definition "This relationship applies between a Physical Object and a (topological) Spatial Region, between an Activity and a Spatial Region and between a State and a Spatial Region."@en ;

  skos:example "Een IfcSpace als fysieke ruimte kan een Constructive Solid Geometry (CSG) representatie hebben als speciaal geval van een 3D ruimtelijk gebied."@nl ;

  skos:example "An IfcSpace as physical space can have a Constructive Solid Geometry (CSG) representation as a special case of a 3D region in space."@nl ;

.

smls:hasPart

  a rdf:Property ;

  skos:prefLabel "has part"@en ;

  skos:prefLabel "heeft deel"@nl ;

  skos:definition "Deze relatie geldt tussen Fysiek Objecten onderling, tussen Informatie Objecten onderling of tussen Activiteiten onderling."@nl ;

  skos:definition "This relationship applies between Physical Objects themselves, between Information Objects themselves or between Activities themselves."@en ;

  skos:example "De fiets van Ellen (fysiek object) bestaat uit een frame, twee wielen en diverse andere onderdelen (allen fysieke objecten)."@nl ;

  skos:example "Ellen's bicycle (physical object) consists of a frame, two wheels and various other parts (all physical objects)."@en ;

.

smls:hasPeriod

  a rdf:Property ;

  skos:prefLabel "has period"@en ;

  skos:prefLabel "heeft periode"@nl ;

  skos:definition "Deze relatie geldt tussen een Toestand en een Tijdperiode of tussen een Fysiek Object en een Tijdperiode."@nl ;

  skos:definition "This relationship applies between a Condition and a Time Period or between a Physical Object and a Time Period."@en ;

  skos:example "Van vrijdag 26 juli tot en met zondag 18 augustus 2019 (tijdperiode) is de N231 (fysiek object) volledig afgesloten (toestand) vanwege groot onderhoud (activiteit)."@nl ;

  skos:example "From Friday 26 July up to and including Sunday 18 August 2019 (time period) the N231 (physical object) is completely closed off (condition) due to major maintenance (activity)."@en ;

.

smls:hasSpatialLocation

  a rdf:Property ;

  skos:prefLabel "has spatial location"@en ;

  skos:prefLabel "heeft ruimtelocatie"@nl ;

.

smls:hasSpatialReference

  a rdf:Property ;

  skos:prefLabel "has spatial reference"@en ;

  skos:prefLabel "heeft ruimtereferentie"@nl ;

.

smls:hasSpatialReferenceSystem

  a rdf:Property ;

  skos:prefLabel "has spatial reference system"@en ;

  skos:prefLabel "heeft ruimtereferentiesysteem"@nl ;

.

smls:hasState

  a rdf:Property ;

  skos:prefLabel "has state"@en ;

  skos:prefLabel "heeft toestand"@nl ;

  skos:definition "Deze relatie geldt tussen een Activiteit en een Toestand of tussen een Fysiek Object en een Toestand."@nl ;

  skos:definition "This relationship applies between an Activity and a State or between a Physical Object and a State."@en ;

  skos:example "Een toestand kan meerdere parameters bevatten. Zo kan van een stukje atmosfeer zowel de luchtdruk, temperatuur als de luchtvochtigheid worden vastgelegd. Deze drie parameters definieren dan de toestand van de atmosfeer op een bepaalde locatie en een bepaald tijdstip."@nl ;

  skos:example "A state can contain multiple parameters. In this way, the air pressure, temperature and humidity of a piece of atmosphere can be recorded. These three parameters then define the state of the atmosphere at a certain location and time."@en ;

.

smls:hasTemporalLocation

  a rdf:Property ;

  skos:prefLabel "has temporal location"@en ;

  skos:prefLabel "heeft tijdlocatie"@nl ;

.

smls:hasTemporalReference

  a rdf:Property ;

  skos:prefLabel "has temporal reference"@en ;

  skos:prefLabel "heeft tijdreferentie"@nl ;

.

smls:hasTemporalReferenceSystem

  a rdf:Property ;

  skos:prefLabel "has temporal reference system"@en ;

  skos:prefLabel "heeft tijdreferentiesysteem"@nl ;

.

smls:performs

  a rdf:Property ;

  skos:prefLabel "performs"@en ;

  skos:prefLabel "voert uit"@nl ;

  skos:definition "Deze relatie geldt tussen een Fysiek Object en een Activiteit."@nl ;

  skos:definition "This relationship applies between a Physical Object and an Activity."@en ;

  skos:example "Het Lassen van een brugleuning (een activiteit) wordt uitgevoerd met behulp van een Lasapparaat (fysiek object) en de Lasser (fysiek object)."@nl ;

  skos:example "The welding of a bridge railing (an activity) is carried out with the aid of a welding machine (physical object) and the welder (physical object)."@en ;

.

smls:quantityKind

  a rdf:Property ;

  skos:prefLabel "grootheid"@nl ;

  skos:prefLabel "quantity kind"@en ;

.

smls:quantityKindShape

  a sh:NodeShape ;

  sh:targetSubjectsOf smls:quantiyKind ;

  sh:path smls:quantityKind ;

  sh:class qudt:QuantityKind ;

.

smls:transforms

  a rdf:Property ;

  skos:prefLabel "transformeert"@nl ;

  skos:prefLabel "transforms"@en ;

  skos:definition "Deze relatie geldt tussen een Activiteit en een Fysiek Object of tussen een Activiteit en een Informatie Object."@nl ;

  skos:definition "This relationship applies between an Activity and a Physical Object or between an Activity and an Information Object."@en ;

  skos:example "Het Bakken (een activiteit) transformeert een pizza (een fysiek object) van ongebakken (een toestand) naar gebakken (een andere toestand)."@nl ;

  skos:example "Baking (an activity) transforms a pizza (a physical object) from unbaked (a state) to baked (another state)."@en ;

.

smls:triggers

  a rdf:Property ;

  skos:prefLabel "triggers"@en ;

  skos:prefLabel "triggert"@nl ;

  skos:definition "Deze relatie geldt tussen een Gebeurtenis en een Activiteit en een Gebeurtenis en een Fysiek Object."@nl ;

  skos:definition "This relationship applies between an Event and an Activity and an Event and a Physical Object."@en ;

  skos:example "Neem een Verkeersongeval (een gebeurtenis). Deze initieert de komst van de hulpdiensten (een activiteit)."@nl ;

  skos:example "Take a traffic accident (an event). This initiates the arrival of the emergency services (an activity)."@en ;

.

smls:unit

  a rdf:Property ;

  skos:prefLabel "eenheid"@nl ;

  skos:prefLabel "unit"@en ;

.

smls:unitShape

  a sh:NodeShape ;

  sh:targetSubjectsOf smls:unit ;

  sh:path smls:unit ;

  sh:class qudt:Unit ;

.

 

 

 

 

 

 

Dr. ir. H.M. (Michel) Böhms
Senior Data Scientist

+31888663107
+31630381220
michel...@tno.nl

Location

 

This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. TNO accepts no liability for the content of this e-mail, for the manner in which you use it and for damage of any kind resulting from the risks inherent to the electronic transmission of messages.

 

 

 

 

Irene Polikoff

unread,
Apr 16, 2020, 1:06:48 PM4/16/20
to topbrai...@googlegroups.com
I don’t know about your use of sh:or, but there is no such thing as sh:Property. There is sh:property.

My recommendation is to use TopBraid Composer to create your shapes. Personally, I would find it challenging to use a plain text editor to put together a set of shapes (or any other code where syntax can be complex) without any errors.

Bohms, H.M. (Michel)

unread,
Apr 16, 2020, 1:16:02 PM4/16/20
to topbrai...@googlegroups.com

 

Your are fully right...

 

Sometimes when starting with the owl code this time I just walked through the relatively small code to change owl into shapes...

 

The Property > property did not solve the issue though...

 

Error in turtle validator: EOF...

 

TBC:

ERROR [Thread-596] (ErrorHandlerFactory.java:101) - [line: 80, col: 1 ] Triples not terminated properly in []-list

 

But when I go to line 80:

I am at the red line below.

 

Could it be related to:

 

    sh:path ( rdf:type [ sh:zeroOrMorePath

                         rdfs:subClassOf ; ] ) ;

 

where you earlier indicated:

 

    sh:path ( [sh:path rdf:type ] [ sh:zeroOrMorePath

                         rdfs:subClassOf ; ] ) ;

 

 

 

# baseURI: https://w3id.org/def/smls-shacl

  a sh:NodeShape ;

  sh:targetClass smls:Activity ;

  a sh:NodeShape ;

  sh:targetClass smls:InformationObject ;

  a sh:NodeShape ;

  sh:targetClass smls:PhysicalObject ;

  a sh:NodeShape ;

  sh:targetClass smls:QuantityValue ;

  sh:property [

    sh:path rdf:value ;

    sh:datatype xsd:decimal ;

    sh:minCount 1 ;

    sh:maxCount 1 ;

    ] ;

.

smls:SpatialLocation

  a rdfs:Class ;

  skos:prefLabel "ruimtelocatie"@nl ;

  skos:prefLabel "spatial location"@en ;

.

smls:SpatialLocationShape

  a sh:NodeShape ;

  sh:targetClass smls:SpatialLocation ;

  sh:property [

    sh:path smls:hasSpatialReference ;

    sh:class smls:SpatialReference ;

    ] ;

  sh:property [

    sh:path smls:hasSpatialReferenceSystem ;

    sh:class smls:SpatialReferenceSystem ;

    ] ;

.

smls:SpatialReference

  a rdfs:Class ;

  skos:prefLabel "ruimtereferentie"@nl ;

  skos:prefLabel "spatial reference"@en ;

.

smls:SpatialReferenceSystem

  a rdfs:Class ;

  skos:prefLabel "ruimtereferentiesysteem"@nl ;

  skos:prefLabel "spatial reference system"@en ;

.

smls:SpatialRegion

  a rdfs:Class ;

  skos:definition "Demarcated space" ;

  skos:example "an IFC BREP or GeoSPARQL geometry representing a physical space, as special case of a physical object, such as an office space, a construction area for a building, a maritime traffic zone within the Channel, a hazard zone within a plant or the loading gauge of a train are examples of a <SpatialRegion>" ;

  skos:prefLabel "ruimtelijk gebied"@nl ;

  skos:prefLabel "spatial region"@en ;

.

smls:SpatialRegionShape

  a sh:NodeShape ;

  sh:targetClass smls:SpatialRegion ;

  sh:property [

    sh:path smls:hasSpatialLocation ;

    sh:class smls:SpatialLocation ;

    ] ;

.

smls:State

  a rdfs:Class ;

  skos:definition "A particular condition that something is in during a specific period in time" ;

  skos:example "well-functioning of a car, the condition of an elevator of being un-safe are examples of a <State>" ;

  skos:prefLabel "state"@en ;

  skos:prefLabel "toestand"@nl ;

  skos:scopeNote "Condition, failure state, objective are subclasses of <State>." ;

.

smls:TemporalCoordinateReferenceSystem

  a rdfs:Class ;

  rdfs:subClassOf smls:TemporalReferenceSystem ;

  skos:prefLabel "temporal coordinate reference system"@en ;

  skos:prefLabel "tijdcoordinaatreferentiesysteem"@nl ;

.

smls:TemporalLocation

  a rdfs:Class ;

  skos:prefLabel "temporal location"@en ;

  skos:prefLabel "tijdlocatie"@nl ;

.

smls:TemporalLocationShape

  a sh:NodeShape ;

  sh:targetClass smls:TemporalLocation ;

  sh:property [

    sh:path smls:hasTemporalReference ;

    sh:class smls:TemporalReference ;

    ] ;

  sh:property [

    sh:path smls:hasTemporallReferenceSystem ;

    sh:class smls:TemporalReferenceSystem ;

    ] ;

.

smls:TemporalReference

  a rdfs:Class ;

  skos:prefLabel "temporal reference"@en ;

  skos:prefLabel "tijdreferentie"@nl ;

.

smls:TemporalReferenceSystem

  a rdfs:Class ;

  skos:prefLabel "temporal reference system"@en ;

  skos:prefLabel "tijdreferentiesysteem"@nl ;

.

smls:TemporalRegion

  a rdfs:Class ;

  skos:definition "A length or portion of time" ;

  skos:example "week 12 in 2019, design stage of the Schiphol tunnel are examples of a <TemporalRegion>" ;

  skos:prefLabel "temporal region"@en ;

  skos:prefLabel "temporeel gebied"@nl ;

  skos:scopeNote "Week, day, life cycle stage are subclasses of <TemporalRegion>." ;

.

smls:TemporalRegionShape

  a sh:NodeShape ;

  sh:targetClass smls:TemporalRegion ;

 sh:property [

    sh:path smls:hasTemporalLocation ;

Has to do with

 

 

 

 

Dr. ir. H.M. (Michel) Böhms
Senior Data Scientist

+31888663107
+31630381220
michel...@tno.nl

Location

 

This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. TNO accepts no liability for the content of this e-mail, for the manner in which you use it and for damage of any kind resulting from the risks inherent to the electronic transmission of messages.

 

 

 

 

--
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to topbraid-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/98BAFB78-B0D6-4F66-81CC-FE8EF95CC0DB%40topquadrant.com.

Bohms, H.M. (Michel)

unread,
Apr 16, 2020, 1:43:10 PM4/16/20
to topbrai...@googlegroups.com

Pinpointed the error to:

.

smls:ActivityShape

  a sh:NodeShape ;

  sh:targetClass smls:Activity ;

  sh:property [

    sh:path ( [ sh:path rdf:type ; ]

              [ sh:zeroOrMorePath rdfs:subClassOf ; ] ) ;

    sh:not [ sh:or ( [ sh:hasValue smls:PhysicalObject ; ]

                     [ sh:hasValue smls:InformationObject ; ]

                     [ sh:hasValue smls:State ; ]

                     [ sh:hasValue smls:Event ; ]

                     [ sh:hasValue smls:SpatialRegion ; ]

                     [ sh:hasValue smls:TemporalRegion ; ]

                    ) ;

            ] ;

.

 

The path seems fine...

So it must be in the not / or combi I guess....

 

 

 

 

 

Dr. ir. H.M. (Michel) Böhms
Senior Data Scientist

+31888663107
+31630381220
michel...@tno.nl

Location

 

This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. TNO accepts no liability for the content of this e-mail, for the manner in which you use it and for damage of any kind resulting from the risks inherent to the electronic transmission of messages.

 

 

 

 


Verzonden: Thursday, April 16, 2020 7:07 PM
Aan: topbrai...@googlegroups.com
Onderwerp: Re: [topbraid-users] syntax in shacl error

 

I don’t know about your use of sh:or, but there is no such thing as sh:Property. There is sh:property.

--

Irene Polikoff

unread,
Apr 16, 2020, 1:46:06 PM4/16/20
to topbrai...@googlegroups.com
I am not the best person to parse the syntax which is why I would avoid using plain text editors. It is too easy for me to miss a bracket or a semicolon.

To me this looks OK

    sh:path ( rdf:type [ sh:zeroOrMorePath
                         rdfs:subClassOf ; ] ) ;

I guess if I had to debug it and did not have access to the syntax directed editor, I would try to cut it down further in order pinpoint the problem e.g.., first try without the sh:or to see if the problem is in the path statement. If it is OK, then it is in sh:or.

Bohms, H.M. (Michel)

unread,
Apr 16, 2020, 1:46:16 PM4/16/20
to topbrai...@googlegroups.com

Even shorter:

 

smls:Activity

  a rdfs:Class, sh:NodeShape;

  sh:property [

    sh:path rdf:type ;

    sh:not [ sh:or ( [ sh:hasValue smls:PhysicalObject ; ]

                     [ sh:hasValue smls:InformationObject ; ]

                     [ sh:hasValue smls:State ; ]

                     [ sh:hasValue smls:Event ; ]

                     [ sh:hasValue smls:SpatialRegion ; ]

                     [ sh:hasValue smls:TemporalRegion ; ]

                    ) ;

            ] .

 

 

 

 

 

Dr. ir. H.M. (Michel) Böhms
Senior Data Scientist

Bohms, H.M. (Michel)

unread,
Apr 16, 2020, 2:51:43 PM4/16/20
to topbrai...@googlegroups.com

 

Got it, stupid mistake indeed, missing ]

Bohms, H.M. (Michel)

unread,
Apr 20, 2020, 3:58:43 AM4/20/20
to topbrai...@googlegroups.com

One more shacl question though....

Wrt:

 

smls:Activity

  a rdfs:Class, sh:NodeShape;

  sh:property [

    sh:path rdf:type ;

    sh:not [ sh:or ( [ sh:hasValue smls:PhysicalObject ; ]

                     [ sh:hasValue smls:InformationObject ; ]

                     [ sh:hasValue smls:State ; ]

                     [ sh:hasValue smls:Event ; ]

                     [ sh:hasValue smls:SpatialRegion ; ]

                     [ sh:hasValue smls:TemporalRegion ; ]

                    ) ;

            ] ; ] .

 

 

Is it possible to do the not/or one level lower? So just on the values: sms:State, Event, SpatialRegion, ... a bit like the OWL unions....

 

In the shacl spec I see no eamples so I guess not.....I was thinking about:

 

smls:Activity

  a rdfs:Class, sh:NodeShape;

  sh:property [

    sh:path rdf:type ;

    sh:hasValue sh:not [ sh:or ( smls:PhysicalObject

                               smls:InformationObject

                               smls:State

                               smls:Event ; ]

                               smls:SpatialRegion

                               smls:TemporalRegion

                             ) ;

            ] ; ] .

 

But this gives error for punctuation after “not”......

 

Thx Michel

Holger Knublauch

unread,
Apr 20, 2020, 8:03:35 AM4/20/20
to topbrai...@googlegroups.com

No, this is not valid Turtle, and I don't see how to construct better RDF triples to express this. You can however define and use your own SHACL constraint component similar to the AllDifferent example that I had outlined before.

Holger


Bohms, H.M. (Michel)

unread,
Apr 20, 2020, 8:38:04 AM4/20/20
to topbrai...@googlegroups.com

Ok, Ill stick to the original

 

Thx michel

Reply all
Reply to author
Forward
0 new messages