@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/3D4ExtruOnt#> .
@prefix schema: <http://schema.org/> .
@prefix cc: <http://creativecommons.org/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix x3d: <http://purl.org/ontology/x3d/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dbpedia: <http://dbpedia.org/resource/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix cito: <http://purl.org/spar/cito/> .
@prefix vidont: <http://vidont.org/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix dc: <http://purl.org/dc/terms/> .

<http://bdi.si.ehu.es/bdi/ontologies/ExtruOnt/3D4ExtruOnt>
    dc:description "3D Modeling Ontology (3DMO) v1.1. A comprehensive 3D ontology with X3D 3.3 and X3DOM alignment."@en ;
    dc:title "The 3D Modeling Ontology"@en ;
    cito:isReviewedBy dbpedia:Web3D_Consortium ;
    a owl:Ontology ;
    rdfs:comment "Submodule of: 3D Modeling Ontology (3DMO) v1.1. A comprehensive 3D ontology with X3D 3.3 and X3DOM alignment."@en ;
    foaf:maker dbpedia:Leslie_Sikos .

dc:description
    a owl:AnnotationProperty .

x3d:Inline
    a owl:Class ;
    rdfs:comment "Inline is a Grouping node that can load nodes from another X3D scene via url."@en ;
    rdfs:label "Inline"@en ;
    rdfs:subClassOf x3d:X3DGroupingNode ;
    owl:disjointWith x3d:X3DTransformNode .

x3d:Transform
    a owl:Class ;
    rdfs:comment "The Transform node is a grouping node that defines a coordinate system for its children that is relative to the coordinate systems of its ancestors. The translation, rotation, scale, scaleOrientation and center fields define a geometric 3D transformation."@en ;
    rdfs:label "Transform"@en ;
    rdfs:subClassOf x3d:X3DTransformNode .

x3d:X3DBoundedObject
    a owl:Class ;
    rdfs:comment "This abstract node type is the basis for all node types that have bounds specified as part of the definition. The bboxCenter and bboxSize fields specify a bounding box that encloses the grouping node's children. This is a hint that may be used for optimization purposes."@en ;
    rdfs:label "X3DBoundedObject"@en ;
    rdfs:subClassOf x3d:X3DChildNode .

x3d:X3DChildNode
    a owl:Class ;
    rdfs:comment "This abstract node type indicates that the concrete nodes that are instantiated based on it may be used in children, addChildren, and removeChildren fields."@en ;
    rdfs:label "X3DChildNode"@en ;
    rdfs:subClassOf x3d:X3DNode .

x3d:X3DGroupingNode
    a owl:Class ;
    rdfs:comment "This abstract node type indicates that concrete node types derived from it contain children nodes and is the basis for all aggregation."@en ;
    rdfs:label "X3DGroupingNode"@en ;
    rdfs:subClassOf x3d:X3DBoundedObject .

x3d:X3DNode
    dc:description "This abstract node type is the base type for all nodes in the X3D system." ;
    a owl:Class ;
    rdfs:comment "This abstract node type is the base type for all nodes in the X3D system."@en ;
    rdfs:label "X3DNode"@en ;
    owl:disjointWith xsd:complexType .

x3d:X3DTransformNode
    a owl:Class ;
    rdfs:comment "This abstract node type is the basis for all node types that group and transform their children."@en ;
    rdfs:label "X3DTransformNode"@en ;
    rdfs:subClassOf x3d:X3DGroupingNode .

x3d:bboxCenter
    a owl:DatatypeProperty ;
    rdfs:comment "Center of the bounding box"@en ;
    rdfs:domain x3d:X3DBoundedObject ;
    rdfs:label "bboxCenter"@en ;
    rdfs:range xsd:string .

x3d:bboxSize
    a owl:DatatypeProperty ;
    rdfs:comment "Size of the bounding box"@en ;
    rdfs:domain x3d:X3DBoundedObject ;
    rdfs:label "bboxSize"@en ;
    rdfs:range xsd:string .

x3d:center
    a owl:DatatypeProperty ;
    rdfs:comment "The center field specifies a translation offset from the origin of the local coordinate system (0,0,0)."@en ;
    rdfs:domain x3d:Transform ;
    rdfs:label "center"@en ;
    rdfs:range xsd:string .

x3d:children
    dc:description "Grouping nodes have a field that contains a list of children nodes" ;
    a owl:ObjectProperty ;
    rdfs:comment "Grouping nodes have a field that contains a list of children nodes. Each grouping node defines a coordinate space for its children. This coordinate space is relative to the coordinate space of the node of which the group node is a child. Such a node is called a parent node. This means that transformations accumulate down the scene graph hierarchy."@en ;
    rdfs:domain x3d:X3DGroupingNode ;
    rdfs:label "children"@en ;
    rdfs:range x3d:X3DChildNode .

x3d:load
    dc:description "Specifies whether the X3D file specified by the url field is loaded." ;
    a owl:DatatypeProperty ;
    rdfs:comment "Specifies whether the X3D file specified by the url field is loaded. Hint: use LoadSensor to detect when loading is complete. TRUE: load immediately (it's also possible to load the URL at a later time by sending a TRUE event to the load field); FALSE: no action is taken (by sending a FALSE event to the load field of a previously loaded Inline, the contents of the Inline will be unloaded from the scene graph)"@en ;
    rdfs:domain x3d:Inline ;
    rdfs:label "load"@en ;
    rdfs:range xsd:boolean .

x3d:mapDEFToID
    dc:description "Specifies whether the DEF value is used as id when no other id is set." ;
    a owl:DatatypeProperty ;
    rdfs:comment "Specifies whether the DEF value is used as id when no other id is set."@en ;
    rdfs:domain x3d:Inline ;
    rdfs:label "mapDEFToID"@en ;
    rdfs:range xsd:boolean .

x3d:metadata
    dc:description "Metadata information" ;
    a owl:DatatypeProperty ;
    rdfs:comment "Field to add metadata information"@en ;
    rdfs:domain x3d:X3DNode ;
    rdfs:label "metadata"@en ;
    rdfs:range xsd:string .

x3d:nameSpaceName
    a owl:DatatypeProperty ;
    rdfs:comment "Specifies the namespace of the Inline node."@en ;
    rdfs:domain x3d:Inline ;
    rdfs:label "nameSpaceName"@en ;
    rdfs:range xsd:string .

x3d:render
    dc:description "Flag to enable/disable rendering" ;
    a owl:DatatypeProperty ;
    rdfs:comment "Flag to enable/disable rendering." ;
    rdfs:domain x3d:X3DBoundedObject ;
    rdfs:label "render"@en ;
    rdfs:range xsd:boolean .

x3d:rotation
    a owl:DatatypeProperty ;
    rdfs:comment "The rotation field specifies a rotation of the coordinate system."@en ;
    rdfs:domain x3d:Transform ;
    rdfs:label "rotation"@en ;
    rdfs:range xsd:string .

x3d:scale
    a owl:DatatypeProperty ;
    rdfs:comment "The scale field specifies a non-uniform scale of the coordinate system. Scale values may have any value: positive, negative (indicating a reflection), or zero. A value of zero indicates that any child geometry shall not be displayed."@en ;
    rdfs:domain x3d:Transform ;
    rdfs:label "scale"@en ;
    rdfs:range xsd:string .

x3d:scaleOrientation
    dc:description "Specifies a rotation of the coordinate system before the scale (to specify scales in arbitrary orientations)." ;
    a owl:DatatypeProperty ;
    rdfs:comment "The scaleOrientation specifies a rotation of the coordinate system before the scale (to specify scales in arbitrary orientations). The scaleOrientation applies only to the scale operation."@en ;
    rdfs:domain x3d:Transform ;
    rdfs:label "scaleOrientation"@en ;
    rdfs:range xsd:string .

x3d:translation
    dc:description "Specifies a translation to the coordinate system." ;
    a owl:DatatypeProperty ;
    rdfs:comment "The translation field specifies a translation to the coordinate system."@en ;
    rdfs:domain x3d:Transform ;
    rdfs:label "translation"@en ;
    rdfs:range xsd:string .

x3d:url
    a owl:DatatypeProperty ;
    rdfs:comment "Each specified URL shall refer to a valid X3D file that contains a list of children nodes, prototypes and routes at the top level. Hint: Strings can have multiple values, so separate each string by quote marks. Warning: strictly match directory and filename capitalization for http links!"@en ;
    rdfs:domain x3d:Inline ;
    rdfs:label "url"@en ;
    rdfs:range xsd:string .

xsd:complexType
    a owl:Class .

skos:broader
    a owl:AnnotationProperty .

skos:related
    a owl:AnnotationProperty .

